Вот тут случайно наткнулся на задачку от Страуструпа.
Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
Я подумал, но больше чем 8 выставить не смог:
class A
{
friend static inline const unsigned int operator or(const A&,const A&);
...
};
Как, скажите, можно записать 10(или даже более)?
Я так пологаю, что макрозамена ключевых слов считается не честной, иначе их можно очень много выставить.
Здравствуйте Fantasist, Вы писали:
F>Вот тут случайно наткнулся на задачку от Страуструпа.
F> F>
F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
F>Я подумал, но больше чем 8 выставить не смог:
F>
F>class A
F>{
F> friend static inline const unsigned int operator or(const A&,const A&);
F> ...
F>};
F>
F>Как, скажите, можно записать 10(или даже более)?
F>Я так пологаю, что макрозамена ключевых слов считается не честной, иначе их можно очень много выставить.
do do do do do do do do do while (true) break; while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true);
Здравствуйте Klestov, Вы писали:
K>Здравствуйте Kaa, Вы писали:
Kaa>>Здравствуйте Fantasist, Вы писали:
F>>>Как, скажите, можно записать 10(или даже более)?
Kaa>>Ну, второе, что пришло в голову:
Kaa>>
Kaa>>while ( sizeof unsigned char )
Kaa>> while( sizeof signed short )
Kaa>> while( sizeof unsigned long )
Kaa>> return;
Kaa>>
F>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
K>
K>do do do do do do do do do while (true) break; while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true);
K>
Не, об этом я первым делом подумал, но: "...десяти идущих подряд различных ключевых"
Здравствуйте Fantasist, Вы писали:
F>Здравствуйте Klestov, Вы писали:
F> F>>> F>>>
F>>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
K>>
K>>do do do do do do do do do while (true) break; while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true);
K>>
F>Не, об этом я первым делом подумал, но: "...десяти идущих подряд различных ключевых"
Здравствуйте Klestov, Вы писали:
K>Здравствуйте Fantasist, Вы писали:
F>>Здравствуйте Klestov, Вы писали:
F>> F>>>> F>>>>
F>>>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
K>>>
K>>>do do do do do do do do do while (true) break; while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true); while (true);
K>>>
F>>Не, об этом я первым делом подумал, но: "...десяти идущих подряд различных ключевых"
K>10 совершенно различных ? Ну тогда ... подумаем
Комментарий
/*
for do class this struct break switch case friend inline
*/
Здравствуйте Fantasist, Вы писали:
F>Вот тут случайно наткнулся на задачку от Страуструпа.
F> F>
F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
F>Я подумал, но больше чем 8 выставить не смог:
F>
F>class A
F>{
F> friend static inline const unsigned int operator or(const A&,const A&);
F> ...
F>};
F>
F>Как, скажите, можно записать 10(или даже более)?
F>Я так пологаю, что макрозамена ключевых слов считается не честной, иначе их можно очень много выставить.
#define for
#define do
#define class
#define this
#define struct
#define break
#define switch
#define case
#define friend
#define inline
for do class this struct break switch case friend inline
K>#define for
K>#define do
K>#define class
K>#define this
K>#define struct
K>#define break
K>#define switch
K>#define case
K>#define friend
K>#define inline
K>for do class this struct break switch case friend inline
K>
K>>#define for
K>>#define do
K>>#define class
K>>#define this
K>>#define struct
K>>#define break
K>>#define switch
K>>#define case
K>>#define friend
K>>#define inline
K>>for do class this struct break switch case friend inline
K>>
K>Не честно но работает )))))))))))))))))
Ну, что так работает это понятно. Но так не интересно, так и гораздо больше уместить можно.
Здравствуйте Fantasist, Вы писали:
F>Вот тут случайно наткнулся на задачку от Страуструпа.
F> F>
F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
F>Я подумал, но больше чем 8 выставить не смог:
F>
F>class A
F>{
F> friend static inline const unsigned int operator or(const A&,const A&);
F> ...
F>};
F>
F>Как, скажите, можно записать 10(или даже более)?
Можно добавить еще 'volatile' и, например, 'short'. А вот 'or' иногда за полноценное ключевое слово не считают...
friend static inline const volatile unsigned short int operator or(const int&, const int&);
Здравствуйте Андрей Тарасевич, Вы писали:
АТ>Можно добавить еще 'volatile' и, например, 'short'. А вот 'or' иногда за полноценное ключевое слово не считают...
АТ>
АТ>friend static inline const volatile unsigned short int operator or(const int&, const int&);
АТ>
Но: 'friend static' — нельзя. И, кстати, параметры на 'const int&' я зря заменил. Так тоже нельзя.
F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
class A {
extern virtual inline operator const signed short int () { return 0L; }
};
Здравствуйте Fantasist, Вы писали:
F>Вот тут случайно наткнулся на задачку от Страуструпа.
F> F>
F> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
F>Я подумал, но больше чем 8 выставить не смог:
10!
struct S
{
friend inline const volatile unsigned long int bitand operator and(S, S)
{
static unsigned long int a = 1;
return a;
}
};
Здравствуйте Klestov, Вы писали:
K>Здравствуйте Fantasist, Вы писали:
F>>Вот тут случайно наткнулся на задачку от Страуструпа.
F>> F>>
F>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
F>>Я подумал, но больше чем 8 выставить не смог:
F>>
F>>class A
F>>{
F>> friend static inline const unsigned int operator or(const A&,const A&);
F>> ...
F>>};
F>>
F>>Как, скажите, можно записать 10(или даже более)?
F>>Я так пологаю, что макрозамена ключевых слов считается не честной, иначе их можно очень много выставить.
K> K>
K>class A {
K>extern virtual inline operator const signed short int () { return 0L; }
K>};
K>
K>8 но ....
Нельзя применять 'extern' к декларации члена класса. Но опять же можно добавить 'volatile':
class A {
virtual inline operator const volatile signed short int () { return 0L; }
};
Здравствуйте dupamid, Вы писали:
D>Здравствуйте Fantasist, Вы писали:
F>>Вот тут случайно наткнулся на задачку от Страуструпа.
F>> F>>
F>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
F>>Я подумал, но больше чем 8 выставить не смог:
D>10!
D>
D>struct S
D>{
D> friend inline const volatile unsigned long int bitand operator and(S, S)
D> {
D> static unsigned long int a = 1;
D> return a;
D> }
D>};
D>
F>> Напишите корректную программу на С++, содержашую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделенных индификаторами, операторами, символами пунтктуации и т. д.
F>>Я подумал, но больше чем 8 выставить не смог:
D>10!
D>
D>struct S
D>{
D> friend inline const volatile unsigned long int bitand operator and(S, S)
D> {
D> static unsigned long int a = 1;
D> return a;
D> }
D>};
D>
Остроумно, но тем не менее согласно тому, что я вынес для себя из одной из дискуссий в comp.lang.c++, alternative tokens не являются ключевыми словами.