Ну если уж речь зала об упражнениях из общеизвесьтной книги, то такой вопрос:
У кого сколько получилось написать ключевых слов С++ подряд, так чтобы выражение было корректным (не используя операторов)? Ума не приложу, как это Страуструп наваял выражение из 20 (!!!) ключевых слов!
В голове всё время идёт вращение вокруг объявлений шаблонных шаблонных ... параметров.
Но 20...
Здравствуйте, creatio, Вы писали:
C>Ну если уж речь зала об упражнениях из общеизвесьтной книги, то такой вопрос: C>У кого сколько получилось написать ключевых слов С++ подряд, так чтобы выражение было корректным (не используя операторов)? Ума не приложу, как это Страуструп наваял выражение из 20 (!!!) ключевых слов!
C>В голове всё время идёт вращение вокруг объявлений шаблонных шаблонных ... параметров. C>Но 20...
Но, вынужден внести небольшое уточнение в условие задачи (сорри проморгал):
разделители — тоже не канают.
т.е. можно использовать только ключевые слова С++.
В задаче предлагалось написать программу из "хотя бы" 10-и ключевых слов, не используя любые знаки пунктуации и разделители...
К слову, рейтинг сложности у неё 2.5...
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
Здравствуйте, creatio, Вы писали:
C>Здравствуйте, korzhik, Вы писали:
C>Вообще, Круто!
C>Но, вынужден внести небольшое уточнение в условие задачи (сорри проморгал): C>разделители — тоже не канают. C>т.е. можно использовать только ключевые слова С++. C>В задаче предлагалось написать программу из "хотя бы" 10-и ключевых слов, не используя любые знаки пунктуации и разделители... C>К слову, рейтинг сложности у неё 2.5...
Программу???
Здравствуйте, ansi, Вы писали:
A>Программу???
Дабы окончательно уточнить ситуацию привожу текст задачи в оригинале.
Напишите корректную программу на С++, содержащую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделённых идентификаторами, операторами, символами пунктуации и т.д.
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
Здравствуйте, creatio, Вы писали:
C>Здравствуйте, ansi, Вы писали:
A>>Программу??? C>Дабы окончательно уточнить ситуацию привожу текст задачи в оригинале.
C>
C>Напишите корректную программу на С++, содержащую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделённых идентификаторами, операторами, символами пунктуации и т.д.
Если не мухлевать с define, то у меня 9:
void func() {
do return delete new unsigned long int const volatile; while(false);
}
Так же будем считать, что вот так не спортивно:
void func() {
do
do// ...do
return delete new unsigned long int const volatile;
while (false);
// ...while (false);
while (false);
}
C>void func()
C>{
C> do return delete new volatile unsigned long long int const;
C> while(false);
C>}
C>
Это все забавно, но long long не является стандартным типом, а new int const просто не откомпилируется. Да и в условии требуются различные ключевые слова.
C>10 !!!!!!! C>КТО БОЛЬШЕ!???
_DA>Это все забавно, но long long не является стандартным типом, а new int const просто не откомпилируется. Да и в условии требуются различные ключевые слова.
long long может и не самый стандартный тип, но на VC++ 7.1 это компилится. Проверено!
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
bool func()
{
if(false) {} else do returnthrow true and false or notnew volatile unsigned long int const(0), false;
while(false);
return false;
}
15 слов, причём всё в соответствии со стандартом. (курсив — изменения, жирное — добавления отн. предыдущего поста).
А если нет ограничений на неповторяемость (это к вопросу о long long), то банальное
К>bool func()
К>{
К> if(false) {} else do returnthrow true and false or notnew volatile unsigned long int const(0), false;
К> while(false);
К> return false;
К>}
К>
К>15 слов, причём всё в соответствии со стандартом. (курсив — изменения, жирное — добавления отн. предыдущего поста). К>А если нет ограничений на неповторяемость (это к вопросу о long long), то банальное К>
К>bool x = true or false or true or false ......
К>
К>побьёт все рекорды.
1. макросы использовать — не спортивно
даже если они и в стандарте, это не делает их ключевыми словами.
2. long long — тип данных, т.е. это не
do
do
do
...
while
while
while
и следовательно не аналогично
true or false or true or false ......
вот!
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
Здравствуйте, creatio, Вы писали:
C>1. макросы использовать — не спортивно C>даже если они и в стандарте, это не делает их ключевыми словами.
and, or и т.д. именно ключевые слова в стандарте. То, что в некоторых реализациях они сделаны в виде макросов, ничего не значит.
C>2. long long — тип данных, т.е. это не
and и ему подобные — это не ключевые слова, это альтернативные токены для замены соответствующих && и т.д. т.е. стандарт по отдельности перечисляет сначала ключевые слова, а потом в отдельной таблице — альтернативные токены.
Of course, the code must be complete enough to compile and link.
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>and и ему подобные — это не ключевые слова, это альтернативные токены для замены соответствующих && и т.д. т.е. стандарт по отдельности перечисляет сначала ключевые слова, а потом в отдельной таблице — альтернативные токены.
Да, действительно, там две таблички — "keywords" и "alternative tokens", но в памяти у меня они слились в одну. В любом случае, макросами они не являются.