Здравствуйте Klestov, Вы писали:
АТ>>Нельзя применять 'extern' к декларации члена класса. Но опять же можно добавить 'volatile':
АТ>>class A { АТ>>virtual inline operator const volatile signed short int () { return 0L; } АТ>>};
K>Можно добавить и 'extern' — рабочий код.
Что значит "рабочий код"? С++ запрещает применение 'extern' в декларациях членов класса, о чем однозначно сказано в 7.1.1/5
Здравствуйте Андрей Тарасевич, Вы писали:
АТ>Остроумно, но тем не менее согласно тому, что я вынес для себя из одной из дискуссий в comp.lang.c++, alternative tokens не являются ключевыми словами.
Это конечно, но они к ним очень близки хотя формально являются операторами. Тяжело найти компилятор который бы не считал их идентификаторами на ряду с new и delete, и запрещал бы
#define and xa-xa!
На том основании что and не идентификатор, а preprocessing-op-or-punc.
Здравствуйте Андрей Тарасевич, Вы писали:
АТ>Здравствуйте Klestov, Вы писали:
АТ>>>Нельзя применять 'extern' к декларации члена класса. Но опять же можно добавить 'volatile':
АТ>>>class A { АТ>>>virtual inline operator const volatile signed short int () { return 0L; } АТ>>>};
K>>Можно добавить и 'extern' — рабочий код.
АТ>Что значит "рабочий код"? С++ запрещает применение 'extern' в декларациях членов класса, о чем однозначно сказано в 7.1.1/5
struct A
{
virtual inline __cdecl operator volatile const signed short int () { return 0; }
};
[]
АТ>Нельзя применять 'extern' к декларации члена класса. Но опять же можно добавить 'volatile':
АТ>class A { АТ>virtual inline operator const volatile signed short int () { return 0L; } АТ>};
А в чем смысл добавления volatile? Не касаясь данной задачи.
АТ>>friend static inline const volatile unsigned short int operator or(const int&, const int&);
АТ>>
АТ>Но: 'friend static' — нельзя. И, кстати, параметры на 'const int&' я зря заменил. Так тоже нельзя.
А почему static нельзя? У меня тоже было такое ощущение, что он там лишний, но VC его скомпилировал, и я тогда тоже подумал, а почему собственно нельзя? Чем друг функция отличается от не друга? Может быть логически static и лишний в объявлении друга, но синтаксически кому он мешает?
Как же я не догадался short поставить (да и никто до этого тоже)!! А volatile я бы и не догадался поставить, потому как слабо представляю, зачем такой модификатор возращаемому значению?
АТ>> А вот 'or' иногда за полноценное ключевое слово не считают...
Забавно, у БС "Язык С++ специальное издание" эти слова перечисленны среди ключевых, без всяких комментариев.
Здравствуйте UgN, Вы писали:
UgN><skipped>
UgN>else do extern inline const volatile signed short int operator + (int p,TClassB p2);
UgN><skipped> UgN>[/ccode]
UgN>10.
Здравствуйте Fantasist, Вы писали:
F>Вот тут случайно наткнулся на задачку от Страуструпа.
F>
F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
Хм.
Есть такой известный постинг:
В заявлении, потрясшем весь компьютерный мир, Кен Томпсон, Деннис
Ричи и Брайан Керниган признали, что операционная система UNIX и язык
программирования Си, созданные ими -- тщательно спланированный
первоапрельский розыгрыш, "продержавшийся" более 20 лет. Выступая на
последнем Конгрессе разработчиков программного обеспечения для ОС ДЕМОС
(UnixWorld Software Development Forum), Томпсон признал следующее:
...
Мы остановились, добившись
успешной компиляции следующего:
Мы не могли даже представить, что современные программисты будут
пытаться использовать язык, допускающий подобный оператор!
...
Ничего не напоминает?
C++ — это прикол от Страуструпа, который даже и представить не мог, что современные программисты будут
пытаться использовать язык, допускающий употребление 10 различных ключевых слов подряд...