|
|
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: > A name of file scope that is explicitly > declared const, and not explicitly declared > extern, has internal linkage, while in C it > would have external linkage. > > Угу. А static ты как сюда сумел приплести? В том смысле, что static не нужен вовсе. const objects по умолчанию static. Вы же боялись нескольких глобальных переменных. Так их и не будет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2007, 21:22 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
MasterZiv White Owl пишет: > Что не работает ? > Неа... не работает почему-то... Там не было запятой. Что именно не работает ? Как не работает ? В чем проявляется неработоспособность кода ?Невнимательно ты сегодня читаешь :) В начале топика речь шла о созадании глобальной константы. С областью видимости между несколькими модулями. А в твоем примере использовался модификатор static который по определению ограничивает область видимости одним модулем. Вот об этом несоответствии тебе и я и blinded и начали намекать. Теперь понял? Не работает static const как объявление глобальной константы, ну не работает! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2007, 21:24 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
MasterZiv Вообще, вот что пишут в стандарте. 3.5 [also 7.1.5] A name of file scope that is explicitly declared const, and not explicitly declared extern, has internal linkage, while in C it would have external linkage. Posted via ActualForum NNTP Server 1.4 Это даю Только у парня еще и h файл есть и инклудит он его в оба файла. А в h файле сказано что связывание внешнее, поэтому все ок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2007, 21:26 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: > В начале топика речь шла о созадании *глобальной* константы. С областью > видимости между несколькими модулями. А в твоем примере использовался > модификатор static который по определению ограничивает область видимости > одним модулем. Вот об этом несоответствии тебе и я и blinded и начали > намекать. Теперь понял? Найдите пож. в оригинальном посте упоминание того, что человеку именно нужна ГЛОБАЛЬНАЯ константа с extern linkage. И покажите. Кто вам сказал, что ему нужен АДРЕС этой константы и уникальность этого адреса в программе ? > Не работает static const как объявление глобальной константы, ну не > работает! :) Э, как бы сказать, как глобальной константы - работает. Как глобальной неизменяемой переменной - не работает. Вообще констант в нормальном понимании этого в С++ пока нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2007, 21:53 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
MasterZivНайдите пож. в оригинальном посте упоминание того, что человеку именно нужна ГЛОБАЛЬНАЯ константа с extern linkage. И покажите.А зачем бы еще человек начал объявлять константу в хеадере? MasterZivКто вам сказал, что ему нужен АДРЕС этой константы и уникальность этого адреса в программе ?Ну да, давай еще начнем вспоминать про дефайны и тайпдефы :) MasterZiv> Не работает static const как объявление глобальной константы, ну не > работает! :) Э, как бы сказать, как глобальной константы - работает.Правда? Покажи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2007, 22:09 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: > Найдите пож. в оригинальном посте упоминание того, что человеку именно > нужна ГЛОБАЛЬНАЯ константа с extern linkage. И покажите. > А зачем бы еще человек начал объявлять константу в хеадере? А где бы еще человек мог объявлять константу ? > Кто вам сказал, что ему нужен АДРЕС этой константы и уникальность этого > адреса в программе ? > > Ну да, давай еще начнем вспоминать про дефайны и тайпдефы :) Демагогия, блин. Отвечай на поставленные вопросы, пожалуйста. > > Не работает static const как объявление глобальной константы, ну не > > работает! :) > Э, как бы сказать, как глобальной константы - работает. > > Правда? Покажи. Да я всегда так объявляю константы. Не было проблем никогда. Надо конечно еще привести примеров из OS библиотек, я помню сейчас только одну - это C++ сный врапер для Crystal Report API. Понимаю что не показательно, но все же. Попробую найти еще. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 10:09 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
MasterZiv пишет: BOOST::RegEx : http://www.boost.org/boost/regex/v4/syntax_type.hpp Какой-то Virtual Reality Engine : http://vreng.enst.fr/html/doxygen/html/face_8cpp.html Какой-то CLHEP - A Class Library for High Energy Physics. http://pcitapiww.cern.ch/asd/lhc++/clhep/manual/RefGuide/Units/PhysicalConstants_h.html Вот еще ссылка по теме : http://lists.linux.org.au/archives/tuxcpprogramming/2002-April/threads.html#00000 Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 10:38 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
Все в6нимательно прочитал. Единственное что вынес - везде такие пременные используются для чисел, особенно в этом показателен СLHEP. оно и понятно полловина вычислений может быть перенесена на компилятор. С const char* это бессмысленно:) Второй аргумент - экономия имен в глобальном scope ну какой-то чудной, ведь можно все в namespace упаковать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 12:19 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
blinded пишет: > Автор: "blinded" > Все в6нимательно прочитал. Единственное что вынес - везде такие > пременные используются для чисел, особенно в этом показателен СLHEP. оно > и понятно полловина вычислений может быть перенесена на компилятор. С Да, для констант ( а не константных переменных) нужен static initializer. > const char* это бессмысленно:) Нет, очень даже не бессмысленно. > Второй аргумент - экономия имен в глобальном scope ну какой-то чудной, > ведь можно все в namespace упаковать После выяснения того, что static const XXX xxx и const XXX xxx эквивалентны в современной версии стандарта это уже не имеет смысл обсуждать. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 13:31 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
MasterZivА где бы еще человек мог объявлять константу ? В заголовке модуля конечно. А еще ее можно объявить внутри класса или даже внутри функции. MasterZiv>> Э, как бы сказать, как глобальной константы - работает. > > Правда? Покажи. Да я всегда так объявляю константы. Не было проблем никогда. Надо конечно еще привести примеров из OS библиотек, Эти примеры не катят. Во первых, надо разбираться как эти библиотеки работают, во вторых (и в главных) никто не гарантирует что эти библиотеки написаны правильно. .... до меня дошло как ты пишешь. Определяешь ' static const aaa bbb = ccc ' в заголовке а потом подключаешь его во все модули? Ну да, оно действительно будет работать, но и дублирование констант в статическом сегменте тоже будет. Вот только что проверил на VC6 - дублирует. GnuC - дублирует. У тебя вместо одной глобальной константы получается сотня одинаковых констант по одной на каждый модуль. Тебе не кажется, что в этом есть некоторая кривость? Может все же лучше extern использовать как учебники предлагают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 17:54 |
|
||
|
странная ошибка с консантной строкой
|
|||
|---|---|---|---|
|
#18+
MasterZiv> Второй аргумент - экономия имен в глобальном scope ну какой-то чудной, > ведь можно все в namespace упаковать После выяснения того, что static const XXX xxx и const XXX xxx эквивалентны в современной версии стандарта это уже не имеет смысл обсуждать.эквивалентны то они эквивалентны (мне кстати, не понятно зачем такое сделали), но static const и extern const как были не эквивалентны, так и остались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 17:57 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34451214&tid=2029068]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 488ms |

| 0 / 0 |
