powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / странная ошибка с консантной строкой
12 сообщений из 37, страница 2 из 2
странная ошибка с консантной строкой
    #34451205
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34451211
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
White Owl пишет:

> Что не работает ?
> Неа... не работает почему-то...

Там не было запятой. Что именно не работает ?
Как не работает ? В чем проявляется неработоспособность кода ?Невнимательно ты сегодня читаешь :)
В начале топика речь шла о созадании глобальной константы. С областью видимости между несколькими модулями. А в твоем примере использовался модификатор static который по определению ограничивает область видимости одним модулем. Вот об этом несоответствии тебе и я и blinded и начали намекать. Теперь понял?
Не работает static const как объявление глобальной константы, ну не работает! :)
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34451214
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 файле сказано что связывание внешнее, поэтому все ок
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34451237
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl пишет:

> В начале топика речь шла о созадании *глобальной* константы. С областью
> видимости между несколькими модулями. А в твоем примере использовался
> модификатор static который по определению ограничивает область видимости
> одним модулем. Вот об этом несоответствии тебе и я и blinded и начали
> намекать. Теперь понял?

Найдите пож. в оригинальном посте упоминание того, что человеку именно
нужна ГЛОБАЛЬНАЯ константа с extern linkage. И покажите.
Кто вам сказал, что ему нужен АДРЕС этой константы и уникальность
этого адреса в программе ?

> Не работает static const как объявление глобальной константы, ну не
> работает! :)

Э, как бы сказать, как глобальной константы - работает. Как глобальной
неизменяемой переменной - не работает. Вообще констант в нормальном
понимании этого в С++ пока нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34451255
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНайдите пож. в оригинальном посте упоминание того, что человеку именно нужна ГЛОБАЛЬНАЯ константа с extern linkage. И покажите.А зачем бы еще человек начал объявлять константу в хеадере?
MasterZivКто вам сказал, что ему нужен АДРЕС этой константы и уникальность этого адреса в программе ?Ну да, давай еще начнем вспоминать про дефайны и тайпдефы :)

MasterZiv> Не работает static const как объявление глобальной константы, ну не
> работает! :)
Э, как бы сказать, как глобальной константы - работает.Правда? Покажи.
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34451831
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl пишет:

> Найдите пож. в оригинальном посте упоминание того, что человеку именно
> нужна ГЛОБАЛЬНАЯ константа с extern linkage. И покажите.

> А зачем бы еще человек начал объявлять константу в хеадере?

А где бы еще человек мог объявлять константу ?

> Кто вам сказал, что ему нужен АДРЕС этой константы и уникальность этого
> адреса в программе ?
>
> Ну да, давай еще начнем вспоминать про дефайны и тайпдефы :)

Демагогия, блин. Отвечай на поставленные вопросы, пожалуйста.

> > Не работает static const как объявление глобальной константы, ну не
> > работает! :)
> Э, как бы сказать, как глобальной константы - работает.
>
> Правда? Покажи.

Да я всегда так объявляю константы. Не было проблем никогда.
Надо конечно еще привести примеров из OS библиотек,
я помню сейчас только одну - это C++ сный врапер для Crystal Report API.
Понимаю что не показательно, но все же. Попробую найти еще.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34451927
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34452343
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все в6нимательно прочитал. Единственное что вынес - везде такие пременные используются для чисел, особенно в этом показателен СLHEP. оно и понятно полловина вычислений может быть перенесена на компилятор. С const char* это бессмысленно:)
Второй аргумент - экономия имен в глобальном scope ну какой-то чудной, ведь можно все в namespace упаковать
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34452727
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded пишет:
> Автор: "blinded"
> Все в6нимательно прочитал. Единственное что вынес - везде такие
> пременные используются для чисел, особенно в этом показателен СLHEP. оно
> и понятно полловина вычислений может быть перенесена на компилятор. С

Да, для констант ( а не константных переменных) нужен static initializer.

> const char* это бессмысленно:)

Нет, очень даже не бессмысленно.

> Второй аргумент - экономия имен в глобальном scope ну какой-то чудной,
> ведь можно все в namespace упаковать

После выяснения того, что static const XXX xxx и
const XXX xxx эквивалентны в современной версии стандарта
это уже не имеет смысл обсуждать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34453901
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА где бы еще человек мог объявлять константу ?
В заголовке модуля конечно. А еще ее можно объявить внутри класса или даже внутри функции.

MasterZiv>> Э, как бы сказать, как глобальной константы - работает.
>
> Правда? Покажи.

Да я всегда так объявляю константы. Не было проблем никогда.
Надо конечно еще привести примеров из OS библиотек,
Эти примеры не катят. Во первых, надо разбираться как эти библиотеки работают, во вторых (и в главных) никто не гарантирует что эти библиотеки написаны правильно.

....
до меня дошло как ты пишешь.
Определяешь ' static const aaa bbb = ccc ' в заголовке а потом подключаешь его во все модули? Ну да, оно действительно будет работать, но и дублирование констант в статическом сегменте тоже будет. Вот только что проверил на VC6 - дублирует. GnuC - дублирует.
У тебя вместо одной глобальной константы получается сотня одинаковых констант по одной на каждый модуль. Тебе не кажется, что в этом есть некоторая кривость? Может все же лучше extern использовать как учебники предлагают?
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34453911
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv> Второй аргумент - экономия имен в глобальном scope ну какой-то чудной,
> ведь можно все в namespace упаковать

После выяснения того, что static const XXX xxx и const XXX xxx эквивалентны в современной версии стандарта это уже не имеет смысл обсуждать.эквивалентны то они эквивалентны (мне кстати, не понятно зачем такое сделали), но static const и extern const как были не эквивалентны, так и остались.
...
Рейтинг: 0 / 0
странная ошибка с консантной строкой
    #34453958
White Owl
мне кстати, не понятно зачем такое сделали

в рамках героической борьбы с #define, как мне кажется..
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / странная ошибка с консантной строкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]