Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 __int128 шрёдингера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54068
Компилирую G++ 8.1 в 32-х разрядном режиме:
align.cpp:6:1: error: expected primary-expression before '__int128'
  __int128 aa;
  ^~~~~~~~

Ну ок, этот тип действительно только для 64-х разрядов. Ставлю заглушку
typedef int __int128;

опаньки:
align.cpp: In function 'int main()': 
     align.cpp:6:13: error: expected unqualified-id before '__int128'
  typedef int __int128;
              ^~~~~~~~
align.cpp:7:1: error: expected primary-expression before '__int128'
  __int128 aa;
  ^~~~~~~~

Как это понимать? Тип таки есть или его таки нет?

Сообщение было отредактировано: 13 сен 21, 18:35
13 сен 21, 18:45    [22371366]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
mayton
Member

Откуда: loopback
Сообщений: 52342
Возможно просто входит в список зарезервированных ключевых слов. Как и register...

Сообщение было отредактировано: 13 сен 21, 18:40
13 сен 21, 18:50    [22371370]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 333
а разве всё что начинается с __ не относится к сырцам std::?

Сообщение было отредактировано: 13 сен 21, 19:22
13 сен 21, 19:32    [22371399]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
a guest
Member

Откуда:
Сообщений: 355
Идентификаторы, начинающиеся с __, зарезервированы и их нельзя использовать.
Иначе, the program is ill-formed, no diagnostic is required.
14 сен 21, 03:01    [22371519]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54068

a guest wrote
Идентификаторы, начинающиеся с __, зарезервированы и их нельзя использовать.

"Не рекомендуется". Это две большие разницы. __int123 определяется легко.

Posted via ActualForum NNTP Server 1.5

14 сен 21, 12:29    [22371680]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
a guest
Member

Откуда:
Сообщений: 355
Dimitry Sibiryakov

a guest wrote
Идентификаторы, начинающиеся с __, зарезервированы и их нельзя использовать.
"Не рекомендуется".
«shall not» — это «не рекомендуется»?
14 сен 21, 12:59    [22371696]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11294
Да, это "не должны/не рекомендуется".
Что заметно отличается от "must not" (не может, запрещено/нельзя).
14 сен 21, 13:22    [22371705]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
a guest
Member

Откуда:
Сообщений: 355
Basil A. Sidorov
Да, это "не должны/не рекомендуется".
Что заметно отличается от "must not" (не может, запрещено/нельзя).
«must [not]» нельзя использовать в ISO-стандартах в нормативном тексте. Вместо него «shall [not]».
14 сен 21, 13:24    [22371709]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54068

В каком месте здесь "shall not"?
* the identifiers with a double underscore anywhere are reserved;
* the identifiers that begin with an underscore followed by an uppercase letter
are reserved;
* the identifiers that begin with an underscore are reserved in the global
namespace.

"Reserved" here means that the standard library headers #define or declare such
identifiers for their internal needs, the compiler may predefine non-standard
identifiers of that kind, and that name mangling algorithm may assume that some
of these identifiers are not in use. If the programmer uses such identifiers,
the behavior is undefined.

Posted via ActualForum NNTP Server 1.5

14 сен 21, 13:27    [22371712]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
a guest
Member

Откуда:
Сообщений: 355
Dimitry Sibiryakov

В каком месте здесь "shall not"?
* the identifiers with a double underscore anywhere are reserved;
* the identifiers that begin with an underscore followed by an uppercase letter
are reserved;
* the identifiers that begin with an underscore are reserved in the global
namespace.

"Reserved" here means that the standard library headers #define or declare such
identifiers for their internal needs, the compiler may predefine non-standard
identifiers of that kind, and that name mangling algorithm may assume that some
of these identifiers are not in use. If the programmer uses such identifiers,
the behavior is undefined.
А я утверждал, что «shall not» будет написано там, откуда ты привык таскать цитаты? Мои слова, по-умолчанию, применимы к стандарту, а не к тому, что написано на всяких васянских сайтах
Тем не менее, насчёт the behavior is undefined сказано верно.

Сообщение было отредактировано: 14 сен 21, 13:30
14 сен 21, 13:37    [22371723]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
бабушкин зайчик
Member

Откуда: сетевой
Сообщений: 333
UB = must not
14 сен 21, 13:38    [22371724]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54068

a guest
Мои слова, по-умолчанию, применимы к стандарту

Ну ок, стандарт:
3 In addition, some identifiers are reserved for use by C++implementations
and shall not be used otherwise; no diagnostic is required.
—(3.1) Each identifier that contains a double underscore __ or begins with an
underscore followed by an uppercase letter is reserved to the implementation
for any use
.
—(3.2) Each identifier that begins with an underscore is reserved to the
implementation for use as a name in
the global namespace.

Какое есть применение вне "any use"?

Posted via ActualForum NNTP Server 1.5

14 сен 21, 13:51    [22371729]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
a guest
Member

Откуда:
Сообщений: 355
Dimitry Sibiryakov

a guest
Мои слова, по-умолчанию, применимы к стандарту

Ну ок, стандарт:
3 In addition, some identifiers are reserved for use by C++implementations
and shall not be used otherwise; no diagnostic is required.
—(3.1) Each identifier that contains a double underscore __ or begins with an
underscore followed by an uppercase letter is reserved to the implementation
for any use
.
—(3.2) Each identifier that begins with an underscore is reserved to the
implementation for use as a name in
the global namespace.

Какое есть применение вне "any use"?
¯\_(ツ)_/¯
Видимо, никакое.
14 сен 21, 15:45    [22371769]     Ответить | Цитировать Сообщить модератору
 Re: __int128 шрёдингера  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 3731
Dimitry Sibiryakov
Какое есть применение вне "any use"?
Ну, Дим!... Ну ты чего?
Двоичное представление MD5, UUID(GUID) и т.п.
14 сен 21, 22:47    [22371952]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить