Ну если уж речь зала об упражнениях из общеизвесьтной книги, то такой вопрос:
У кого сколько получилось написать ключевых слов С++ подряд, так чтобы выражение было корректным (не используя операторов)? Ума не приложу, как это Страуструп наваял выражение из 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", но в памяти у меня они слились в одну. В любом случае, макросами они не являются.
Здравствуйте, creatio, Вы писали:
C>Здравствуйте, ansi, Вы писали:
C>Ну если уж речь зала об упражнениях из общеизвесьтной книги, то такой вопрос: C>У кого сколько получилось написать ключевых слов С++ подряд, так чтобы выражение было корректным (не используя операторов)? Ума не приложу, как это Страуструп наваял выражение из 20 (!!!) ключевых слов!
C>В голове всё время идёт вращение вокруг объявлений шаблонных шаблонных ... параметров. C>Но 20...
Сначала я сделал так:
class XXX
{
public:
virtual inline volatile const signed long int operator// 8
() () { return 0; }
}; // XXX
8 слов и КОМО выдал ворнинг.
Потом так:
void A ()
{
if (0)
return;
else do return throw sizeof new const volatile long signed int// 11
(0);
while (0);
} // A
Здравствуйте, creatio, Вы писали:
C>У кого сколько получилось написать ключевых слов С++ подряд, так чтобы выражение было корректным (не используя операторов)? Ума не приложу, как это Страуструп наваял выражение из 20 (!!!) ключевых слов!
А так можно ?
int main()
{
class Super
{
public:
protected:
private:
virtual operator const volatile unsigned int () throw( signed short )
{
do
{
if ( float() )
return sizeof(double) || char();
else
throw( char() );
} while( true || false );
}
};
return 0;
}
Здравствуйте, ecco, Вы писали:
E>Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>>так у тебя разделителей полно E>А что считать разделителем? Всё что не ключевое слово?
Операторы и пунктуаторы, например, ':', '(', ')', '{', '}', || и т.д.
Of course, the code must be complete enough to compile and link.