Re[4]: Задачка от БС.
От: Klestov  
Дата: 13.11.02 08:08
Оценка:
Здравствуйте Klestov, Вы писали:

Избыточное цитирование удалено модератором. -- ПК

class A {
extern virtual inline operator const volatile signed short int () { return 0L; }
};


Уже 9 !!!
Re[4]: Задачка от БС.
От: Андрей Тарасевич Беларусь  
Дата: 13.11.02 08:09
Оценка:
Здравствуйте Klestov, Вы писали:

АТ>>Нельзя применять 'extern' к декларации члена класса. Но опять же можно добавить 'volatile':


АТ>>class A {

АТ>>virtual inline operator const volatile signed short int () { return 0L; }
АТ>>};

K>Можно добавить и 'extern' — рабочий код.


Что значит "рабочий код"? С++ запрещает применение 'extern' в декларациях членов класса, о чем однозначно сказано в 7.1.1/5
Best regards,
Андрей Тарасевич
Re[3]: Задачка от БС.
От: dupamid Россия  
Дата: 13.11.02 08:25
Оценка:
Здравствуйте Андрей Тарасевич, Вы писали:

АТ>Остроумно, но тем не менее согласно тому, что я вынес для себя из одной из дискуссий в comp.lang.c++, alternative tokens не являются ключевыми словами.


Это конечно, но они к ним очень близки хотя формально являются операторами. Тяжело найти компилятор который бы не считал их идентификаторами на ряду с new и delete, и запрещал бы

#define and xa-xa!


На том основании что and не идентификатор, а preprocessing-op-or-punc.
Не оверквоть!
От: Kaa Украина http://blog.meta.ua/users/kaa/
Дата: 13.11.02 08:26
Оценка:
Здравствуйте Klestov:

Почитай правила поведения. Иначе нарвешься на встречные меры.
... << RSDN@Home 1.0 alpha 12 >>
Алексей Кирдин
Re[5]: Задачка от БС.
От: Alex Smirnov Россия  
Дата: 13.11.02 08:27
Оценка:
Здравствуйте Андрей Тарасевич, Вы писали:

АТ>Здравствуйте 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; }
};

А __cdecl можно?
Alex
Re[3]: Задачка от БС.
От: Алекс Россия http://wise-orm.com
Дата: 13.11.02 08:29
Оценка:
Здравствуйте Андрей Тарасевич, Вы писали:

[]

АТ>Нельзя применять 'extern' к декларации члена класса. Но опять же можно добавить 'volatile':


АТ>class A {

АТ>virtual inline operator const volatile signed short int () { return 0L; }
АТ>};

А в чем смысл добавления volatile? Не касаясь данной задачи.
Re[3]: Задачка от БС.
От: Fantasist  
Дата: 13.11.02 08:30
Оценка:
Здравствуйте Андрей Тарасевич, Вы писали:


АТ>>
АТ>>friend static inline const volatile unsigned short int operator or(const int&, const int&);
АТ>>


АТ>Но: 'friend static' — нельзя. И, кстати, параметры на 'const int&' я зря заменил. Так тоже нельзя.


А почему static нельзя? У меня тоже было такое ощущение, что он там лишний, но VC его скомпилировал, и я тогда тоже подумал, а почему собственно нельзя? Чем друг функция отличается от не друга? Может быть логически static и лишний в объявлении друга, но синтаксически кому он мешает?

Как же я не догадался short поставить (да и никто до этого тоже)!! А volatile я бы и не догадался поставить, потому как слабо представляю, зачем такой модификатор возращаемому значению?

АТ>> А вот 'or' иногда за полноценное ключевое слово не считают...


Забавно, у БС "Язык С++ специальное издание" эти слова перечисленны среди ключевых, без всяких комментариев.
Re: Задачка от БС.
От: Kaa Украина http://blog.meta.ua/users/kaa/
Дата: 13.11.02 08:37
Оценка:
Здравствуйте Fantasist, Вы писали:

Ну че, в пару к комментарию только строковый литерал
Алексей Кирдин
Re: Не оверквоть!
От: Klestov  
Дата: 13.11.02 08:41
Оценка: 2 (1)
Здравствуйте Kaa, Вы писали:

Kaa>Здравствуйте Klestov:


Kaa>Почитай правила поведения. Иначе нарвешься на встречные меры.



class TClassB {
};

int g ()
{
if (true) {}
else do extern const volatile signed short int operator + (int p,TClassB p2);
while (true);
}


9.
Re[2]: Не оверквоть!
От: UgN  
Дата: 13.11.02 09:01
Оценка:
Здравствуйте Klestov, Вы писали:


K>
K>class TClassB {
K>};

K>int g ()
K>{
K>if (true) {}
K>else do extern const volatile signed short int operator + (int p,TClassB p2);
K>while (true);
K>}
K>


K>9.




<skipped>

else do extern inline const volatile signed short int operator + (int p,TClassB p2);

<skipped>


10.
Re[3]: Не оверквоть!
От: dupamid Россия  
Дата: 13.11.02 09:04
Оценка:
Здравствуйте UgN, Вы писали:

UgN><skipped>


UgN>else do extern inline const volatile signed short int operator + (int p,TClassB p2);


UgN><skipped>

UgN>[/ccode]

UgN>10.


inline писать писать нельзя.
Re[3]: Не оверквоть!
От: Fantasist  
Дата: 13.11.02 09:07
Оценка:
Здравствуйте UgN, Вы писали:

UgN>
UgN><skipped>

UgN>else do extern inline const volatile signed short int operator + (int p,TClassB p2);

UgN><skipped>
UgN>


UgN>10.


То же самое хотел написать, после прочтения постинга Klestov'a. Так что приз надо вручать ему.
Re[3]: Не оверквоть!
От: Alex Smirnov Россия  
Дата: 13.11.02 09:10
Оценка:
Здравствуйте UgN, Вы писали:

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


UgN>

K>>
K>>class TClassB {
K>>};

K>>int g ()
K>>{
K>>if (true) {}
K>>else do extern const volatile signed short int operator + (int p,TClassB p2);
K>>while (true);
K>>}
K>>


K>>9.


UgN>


UgN>
UgN><skipped>

UgN>else do extern inline const volatile signed short int operator + (int p,TClassB p2);

UgN><skipped>
UgN>


UgN>10.


else do extern inline const volatile signed short int __cdecl operator + (int p,TClassB p2);


11.
Alex
Re[4]: Не оверквоть!
От: Fantasist  
Дата: 13.11.02 09:15
Оценка:
Здравствуйте Alex Smirnov, Вы писали:


AS>
AS>else do extern inline const volatile signed short int __cdecl operator + (int p,TClassB p2);
AS>


AS>11.


_cdecl — не ключевое слово С++, это расширение Microsoft'a.
Re[4]: Не оверквоть!
От: UgN  
Дата: 13.11.02 09:22
Оценка:
Здравствуйте dupamid, Вы писали:


D>inline писать писать нельзя.


Почему? Компиляется VS6 на ура...

It's compiled? First screen shows? Let's sell it!

А что до смысла -- так я скорее застрелюсь чем в своей программе ТАКОЕ напишу.
Re[5]: Не оверквоть!
От: Klestov  
Дата: 13.11.02 09:24
Оценка: -1
Здравствуйте UgN, Вы писали:

Избыточное цитирование удалено модератором. -- ПК

UgN>я скорее застрелюсь чем в своей программе ТАКОЕ напишу.


Я тоже.
Re[4]: Не оверквоть!
От: UgN  
Дата: 13.11.02 09:24
Оценка:
Здравствуйте Fantasist, Вы писали:

F> То же самое хотел написать, после прочтения постинга Klestov'a. Так что приз надо вручать ему.


Не-а... Лучше между собой поделим!

Re[6]: Не оверквоть!
От: Klestov  
Дата: 13.11.02 09:25
Оценка:
Здравствуйте Klestov, Вы писали:

Избыточное цитирование удалено модератором. -- ПК

UgN>>It's compiled? First screen shows? Let's sell it!


UgN>>А что до смысла -- так я скорее застрелюсь чем в своей программе ТАКОЕ напишу.


K>Я тоже.


Но inline по хорошему писать нельзя. То что его понимает VC так это его проблемы — он стандарта не придерживается в отличии от C++Builder
Re[5]: Не оверквоть!
От: Fantasist  
Дата: 13.11.02 09:27
Оценка:
Здравствуйте UgN, Вы писали:

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


UgN>

D>>inline писать писать нельзя.

UgN>Почему? Компиляется VS6 на ура...


А задачка предполагает соответсвие стандарту, а не компилятору.

UgN>А что до смысла -- так я скорее застрелюсь чем в своей программе ТАКОЕ напишу.


Ну про смысл, тут можно откровенно молчать.
Re: Задачка от БС.
От: UgN  
Дата: 13.11.02 09:33
Оценка:
Здравствуйте Fantasist, Вы писали:

F>Вот тут случайно наткнулся на задачку от Страуструпа.


F>

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




Хм.

Есть такой известный постинг:

В заявлении, потрясшем весь компьютерный мир, Кен Томпсон, Деннис
Ричи и Брайан Керниган признали, что операционная система UNIX и язык
программирования Си, созданные ими -- тщательно спланированный
первоапрельский розыгрыш, "продержавшийся" более 20 лет. Выступая на
последнем Конгрессе разработчиков программного обеспечения для ОС ДЕМОС
(UnixWorld Software Development Forum), Томпсон признал следующее:

...

Мы остановились, добившись
успешной компиляции следующего:

for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

Мы не могли даже представить, что современные программисты будут
пытаться использовать язык, допускающий подобный оператор!

...


Ничего не напоминает?

C++ — это прикол от Страуструпа, который даже и представить не мог, что современные программисты будут
пытаться использовать язык, допускающий употребление 10 различных ключевых слов подряд...

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.