20 ключевых слов подряд
От: creatio Украина  
Дата: 05.07.05 12:31
Оценка:
Здравствуйте, ansi, Вы писали:

Ну если уж речь зала об упражнениях из общеизвесьтной книги, то такой вопрос:
У кого сколько получилось написать ключевых слов С++ подряд, так чтобы выражение было корректным (не используя операторов)? Ума не приложу, как это Страуструп наваял выражение из 20 (!!!) ключевых слов!

В голове всё время идёт вращение вокруг объявлений шаблонных шаблонных ... параметров.
Но 20...

template< template<class> class A>
class С
{
};

08.07.05 01:18: Ветка выделена из темы А есть ли решение упражнений для книги Страуструпа
Автор:
Дата: 03.07.05
— Павел Кузнецов
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
Re[9]: 20 ключевых слов подряд
От: gbt Россия  
Дата: 05.07.05 13:59
Оценка:
Здравствуйте, creatio, Вы писали:

C>Ну если уж речь зала об упражнениях из общеизвесьтной книги, то такой вопрос:

C>У кого сколько получилось написать ключевых слов С++ подряд, так чтобы выражение было корректным (не используя операторов)? Ума не приложу, как это Страуструп наваял выражение из 20 (!!!) ключевых слов!

C>В голове всё время идёт вращение вокруг объявлений шаблонных шаблонных ... параметров.

C>Но 20...

У меня шесть получилось:
static const volatile unsigned long int

Как больше — не знаю...
Re[10]: 20 ключевых слов подряд
От: gbt Россия  
Дата: 05.07.05 14:01
Оценка:
Даже 7:
gbt>typedef static const volatile unsigned long int
Re[11]: 20 ключевых слов подряд
От: gbt Россия  
Дата: 05.07.05 14:02
Оценка:
gbt>>typedef static const volatile unsigned long int

Упс, прогнал...
Re[10]: 20 ключевых слов подряд
От: korzhik Россия  
Дата: 05.07.05 14:06
Оценка: 7 (1)
Здравствуйте, gbt, Вы писали:

gbt>У меня шесть получилось:

gbt>
gbt>static const volatile unsigned long int
gbt>

gbt>Как больше — не знаю...

int main() { 
   if (false) { 
   } else do 
      throw sizeof new signed long int const volatile(); 
   while (false); 
}


http://www.vandevoorde.com/C++Solutions/
Re[11]: 20 ключевых слов подряд
От: creatio Украина  
Дата: 05.07.05 14:46
Оценка:
Здравствуйте, korzhik, Вы писали:

Вообще, Круто!

Но, вынужден внести небольшое уточнение в условие задачи (сорри проморгал):
разделители — тоже не канают.
т.е. можно использовать только ключевые слова С++.
В задаче предлагалось написать программу из "хотя бы" 10-и ключевых слов, не используя любые знаки пунктуации и разделители...
К слову, рейтинг сложности у неё 2.5...
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
Re[12]: 20 ключевых слов подряд
От: ansi  
Дата: 06.07.05 06:33
Оценка:
Здравствуйте, creatio, Вы писали:

C>Здравствуйте, korzhik, Вы писали:


C>Вообще, Круто!


C>Но, вынужден внести небольшое уточнение в условие задачи (сорри проморгал):

C>разделители — тоже не канают.
C>т.е. можно использовать только ключевые слова С++.
C>В задаче предлагалось написать программу из "хотя бы" 10-и ключевых слов, не используя любые знаки пунктуации и разделители...
C>К слову, рейтинг сложности у неё 2.5...
Программу???
Re[13]: 20 ключевых слов подряд
От: creatio Украина  
Дата: 06.07.05 07:38
Оценка:
Здравствуйте, ansi, Вы писали:

A>Программу???

Дабы окончательно уточнить ситуацию привожу текст задачи в оригинале.


Напишите корректную программу на С++, содержащую последовательность по крайней мере из десяти идущих подряд различных ключевых слов, не разделённых идентификаторами, операторами, символами пунктуации и т.д.

Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
Re[14]: 20 ключевых слов подряд
От: ansi  
Дата: 06.07.05 11:23
Оценка: 2 (1)
Здравствуйте, 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); 
}


В принципе, VC 7.1 хавает и такое:
typedef  inline const unsigned const long const double const volatile const const const /* ... */ t(int);

Но это тоже не очень

П.С.
Это бы в этюды.
new RSDN@Home(1.1.4, 303) << new Message(); std::head::ear << "Avantasia — Sign Of The Cross";
Re[15]: 20 ключевых слов подряд
От: creatio Украина  
Дата: 06.07.05 11:43
Оценка: 3 (1) :)
Здравствуйте, ansi, Вы писали:

A>
A>void func() {
A>    do return delete new unsigned long int const volatile; while(false);
A>}
A>



Это вдохновило!
Чуть чуть посидев плоучилось:


void func() 
{
    do return delete new volatile unsigned long long int const; 
    while(false);
}



10 !!!!!!!
КТО БОЛЬШЕ!???
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
Re[16]: 20 ключевых слов подряд
От: _DAle_ Беларусь  
Дата: 06.07.05 12:30
Оценка:
Здравствуйте, creatio, Вы писали:



C>
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>КТО БОЛЬШЕ!???
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[16]: 20 ключевых слов подряд
От: Кодт Россия  
Дата: 06.07.05 12:57
Оценка: 3 (1)
Здравствуйте, creatio, Вы писали:

C>void func() 
C>{
C>    if(false) {} else do return delete new volatile unsigned long long int const (0); 
C>    while(false);
C>}
Перекуём баги на фичи!
Re[17]: 20 ключевых слов подряд
От: creatio Украина  
Дата: 06.07.05 13:01
Оценка:
Здравствуйте, _DAle_, Вы писали:


_DA>Это все забавно, но long long не является стандартным типом, а new int const просто не откомпилируется. Да и в условии требуются различные ключевые слова.


long long может и не самый стандартный тип, но на VC++ 7.1 это компилится. Проверено!
Why do you call Visual Studio 'your bunny'?...
(c) one american colleague
Re[17]: 20 ключевых слов подряд
От: Кодт Россия  
Дата: 06.07.05 13:10
Оценка:
bool func() 
{
    if(false) {} else do return throw true and false or not new volatile unsigned long int const(0), false;
    while(false);
    return false;
}

15 слов, причём всё в соответствии со стандартом. (курсив — изменения, жирное — добавления отн. предыдущего поста).
А если нет ограничений на неповторяемость (это к вопросу о long long), то банальное
bool x = true or false or true or false ......

побьёт все рекорды.
Перекуём баги на фичи!
Re[18]: 20 ключевых слов подряд
От: creatio Украина  
Дата: 06.07.05 14:02
Оценка:
Здравствуйте, Кодт, Вы писали:

К>
К>bool func() 
К>{
К>    if(false) {} else do return throw true and false or not new 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
Re[19]: 20 ключевых слов подряд
От: CrystaX Россия https://crystax.me/
Дата: 06.07.05 14:41
Оценка:
Здравствуйте, creatio, Вы писали:

C>1. макросы использовать — не спортивно

C>даже если они и в стандарте, это не делает их ключевыми словами.

and, or и т.д. именно ключевые слова в стандарте. То, что в некоторых реализациях они сделаны в виде макросов, ничего не значит.

C>2. long long — тип данных, т.е. это не


Нестандартный.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: 20 ключевых слов подряд
От: Lorenzo_LAMAS  
Дата: 08.07.05 07:26
Оценка:
Сhez уже показал, как можно написать ВСЕ 63 ключевых слова С++. Потому тему можно закрывать

#define a(b)

int main()
{
   a(asm auto bool break case)//и т.д.
}
Of course, the code must be complete enough to compile and link.
Re[20]: 20 ключевых слов подряд
От: Lorenzo_LAMAS  
Дата: 08.07.05 07:29
Оценка:
and и ему подобные — это не ключевые слова, это альтернативные токены для замены соответствующих && и т.д. т.е. стандарт по отдельности перечисляет сначала ключевые слова, а потом в отдельной таблице — альтернативные токены.
Of course, the code must be complete enough to compile and link.
Re[21]: 20 ключевых слов подряд
От: CrystaX Россия https://crystax.me/
Дата: 08.07.05 07:41
Оценка: +1
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>and и ему подобные — это не ключевые слова, это альтернативные токены для замены соответствующих && и т.д. т.е. стандарт по отдельности перечисляет сначала ключевые слова, а потом в отдельной таблице — альтернативные токены.


Да, действительно, там две таблички — "keywords" и "alternative tokens", но в памяти у меня они слились в одну. В любом случае, макросами они не являются.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[2]: 20 ключевых слов подряд
От: IROV..  
Дата: 08.07.05 09:06
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>Сhez уже показал, как можно написать ВСЕ 63 ключевых слова С++. Потому тему можно закрывать


L_L>
L_L>#define a(b)

L_L>int main()
L_L>{
L_L>   a(asm auto bool break case)//и т.д.
L_L>}

Не спортивно =)

L_L>
я не волшебник, я только учусь!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.