static in a namespace scope
От: igna Россия  
Дата: 26.02.13 09:03
Оценка: 4 (1)
Использование static для объектов со внутренним связыванием больше не deprecated?

В новом стандарте отсутствует фраза:

The use of the static keyword is deprecated when declaring objects in a namespace scope (see annex D);
the unnamed-namespace provides a superior alternative.

Re: Нашел на stackoverflow.com
От: igna Россия  
Дата: 26.02.13 09:17
Оценка: 4 (1) -1
Нашел на stackoverflow.com:

C++11 has removed the deprecation, so there's no longer any particular reason to prefer unnamed namespaces over static.


здесь
Re[2]: Нашел на stackoverflow.com
От: uzhas Ниоткуда  
Дата: 26.02.13 09:52
Оценка: -2
Здравствуйте, igna, Вы писали:

I>Нашел на stackoverflow.com:


только цитату выдрал неудачную, смысл в анонимных неймспейсах все еще есть имхо
а deprecate сняли только из-за необходимости обратной совместимости с сями, так что по-прежнему рекомендую освоить анонимные неймспейсы
Re[3]: Нашел на stackoverflow.com
От: Abyx Россия  
Дата: 26.02.13 10:39
Оценка: 1 (1)
Здравствуйте, uzhas, Вы писали:

U>смысл в анонимных неймспейсах все еще есть имхо


и какой в них смысл?
In Zen We Trust
Re[4]: Нашел на stackoverflow.com
От: uzhas Ниоткуда  
Дата: 26.02.13 11:40
Оценка:
Здравствуйте, Abyx, Вы писали:

A>и какой в них смысл?


об этом и почему static не смогли сделать deprecated можно почитать по ссылкам:
http://stackoverflow.com/questions/4977252/why-unnamed-namespace-is-a-superior-alternative-to-static
http://stackoverflow.com/questions/4726570/deprecation-of-the-static-keyword-no-more
http://www.rsdn.ru/forum/cpp/4718161.flat
Автор: Андрей Е
Дата: 27.04.12

http://crazycpp.wordpress.com/2011/01/18/static-keyword-is-back/

и там внутри еще можно покликать
Re[5]: Нашел на stackoverflow.com
От: igna Россия  
Дата: 26.02.13 12:06
Оценка:
Здравствуйте, uzhas, Вы писали:

U>и там внутри еще можно покликать


Покликал внутри и нашел единственное более-менее авторитетное мнение, а именно мнение Danny Kalev:

Today it's hard to believe that these arguments won. File-scope static is officially deprecated in the C++98 and C++03 standards. It's still deprecated in the C++0x Working Draft. In retrospect, its deprecation was rash and unjustified. It didn't solve any problem because there wasn't any problem with static to begin with. Secondly, the "superior alternative" that the C++ standard prescribes, namely a nameless namespace, is cumbersome, unintuitive (how many programmers understand it?) and worst of all -- committee members are now realizing that linkage is important, especially after the recent changes regarding template arguments' linkage.

здесь

Не собираюсь отстаивать его мнение, тем более с раскоряченными пальцами; во-первых, потому-что уже читал кое-что этого автора, с чем остался не согласен, во-вторых, потому-что с раскоряченными пальцами вообще никакого мнения отстаивать не собираюсь. В отличие от.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.