Точка с запятой
От: remark Россия http://www.1024cores.net/
Дата: 27.11.05 13:02
Оценка:
За небольшой промежуток времени на форуме несколько тредов про то, что люди забывают ставить ";" в определённых местах... Сам раньше регулярно, сейчас тоже иногда, туплю над загадочными сообщениями компилятора, по причине того, что забыл ";" после определения класса...
Особенно интересно, когда компилятор указывает, что ошибка в первой строчке .cpp файла, где какой-нибудь инклюд стоит
Надовит на мысли... В одних местах нельзя ставить сабж, в других обязательно, в третьих по-желанию (это особенно интересно ).
Раньше наверное проблемы были с синтаксическими анализаторами... Сделали бы что ли и после классов сабж не обязательно, как после функций. И совместимость бы не нарушили.



1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: Точка с запятой
От: lLPl  
Дата: 27.11.05 13:39
Оценка:
Здравствуйте, remark, Вы писали:

R>Надовит на мысли... В одних местах нельзя ставить сабж, в других обязательно, в третьих по-желанию (это особенно интересно ).


А по желанию это в каком случае?
C++ можно выучить за 21 день! ...если дни — полярные.
Re[2]: Точка с запятой
От: korzhik Россия  
Дата: 27.11.05 14:02
Оценка:
Здравствуйте, lLPl, Вы писали:

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


R>>Надовит на мысли... В одних местах нельзя ставить сабж, в других обязательно, в третьих по-желанию (это особенно интересно ).


LP>А по желанию это в каком случае?


По желанию, точку с запятой можно ставить, а можно и не ставить после определения инлайновой функции, определённой внутри определения класса

9.2 Class members
member-specification:
member-declaration member-specification opt
access-specifier : member-specification opt

member-declaration:
decl-specifier-seq opt member-declarator-list opt ;
function-definition ;opt

Re: Точка с запятой
От: lLPl  
Дата: 27.11.05 14:36
Оценка: +3
Здравствуйте, remark, Вы писали:

R>Раньше наверное проблемы были с синтаксическими анализаторами... Сделали бы что ли и после классов сабж не обязательно, как после функций. И совместимость бы не нарушили.


Проблема в том, что после определения класса может идти объявление переменной(/ых).
class A
{
//...
} obj, *ptr ;

Поэтому без точки с запятой не обойтись.
C++ можно выучить за 21 день! ...если дни — полярные.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.