Форум программистов, компьютерный форум CyberForum.ru

Константные глобальные переменные - константные ли? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ clang начал поддерживать С++14 http://www.cyberforum.ru/cpp/thread925160.html
Привет! Вот такая новость :) Все, что реализовано можно посмотреть здесь (там снизу). Сейчас попробовал следующий код #include <iostream> int main() { int n = 0b110110110; std::cout << n << std::endl; } Работает :) ключ компиляции -std=c++1y.
C++ SAX json парсер Вечер добрый. Есть задача реализовать SAX-парсер JSON-a (парсинг не во временные переменные, а сразу в текущие, на которые указатели/ссылки сохранены в некий контекст в классе). Задача парсить не просто примитивные типы и контейнеры, но и сложные/составные типы. Нечто вроде такого struct A { int a; std::vector<int> b; std::string c; http://www.cyberforum.ru/cpp/thread918540.html
C++ Передача типа указателя на функцию
Всем привет. Недавно в теме начинающих возник вопрос, а можно ли передать тип (указатель на функцию) без использования typedef: typedef void (*func)(void); func f = va_arg(vl,func); Конкретно речь идет о втором аргументе макроса va_arg (из <cstdarg>). Первое, что пришло на ум, это использование decltype. Но всё же эта фишка C++11. А есть ли решение в старом стиле? Заранее спасибо.
C++ Десять возможностей C++11, которые должен использовать каждый C++ разработчик
Обсуждаем статью: http://habrahabr.ru/post/182920/ Надо же этот раздел немного оживить :) Я, естественно, не участвую. ^_^
C++ Лямбда не допускает auto http://www.cyberforum.ru/cpp/thread890370.html
Всем привет! Имеем код: #include <iostream> #include <vector> #include <algorithm> #include <numeric> int main()
C++ Вызов через указатель на функцию-член Всем экспертам привет :) Разбавим раздел, так сказать. Задался тут таким вопросом: Есть класс, в котором объявлено поле типа "указатель на функцию-член" : struct C { void (C::*m)(); ... }; подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт CЭксперт С++
6409 / 3607 / 448
Регистрация: 29.11.2010
Сообщений: 9,532

Константные глобальные переменные - константные ли? - C++

18.01.2014, 21:45. Просмотров 2705. Ответов 0
Метки (Все метки)

Сейчас вспомнил один момент, который остался неразрешенной для меня загадкой. Случилось это более года назад. Пытался устроиться на стажировку в Яндекс. Дали 3 задания, последнее требовало из 10000 исходников на С++ любыми средствами вытащить список глобальных переменных. При этом, в примере что они предоставили, глобальные константы за оные не считаются.

Переписка:
Здравствуйте, ув. XXX!
У меня есть вопрос относительно задачи С. В ней необходимо вывести список глобальных переменных. В примере почему-то пропущена глобальная переменная с модификатором const. Это намеренный пропуск (т.е. переменные с const следует не считать) или же опечатка?
Спасибо за внимание.
Константы не счиаем глобальными.
Я знаю, что gcc при связывании константы как глобальные переменные не отмечает. Но имеем ли мы право так рассуждать, основываясь лишь на чисто технической реализации компилятора?

К сожалению, авторитетных источников информации по этому поводу не нашел (видимо плохо искал).

Не по теме:

Да, они хотели парсер выхлопа gcc



Добавлено через 1 час 21 минуту
С позволения Убежденный (из ЛС)
В стандарте C++03, в разделе 3.5 "Program and linkage", сказано:
3. A name having namespace scope (3.3.5) has internal linkage if it is the name of

- an object, reference, function or function template that is explicitly declaredstaticor,

- an object or reference that is explicitly declared const and neither explicitly declared
extern nor previously declared to have external linkage
; or

- a data member of an anonymous union.
То есть, такое поведение - не просто особенность технической реализации
компилятора, оно подразумевается стандартом языка.
На всякий случай приведу тот же пункт из С++11:
A name having namespace scope (3.3.6) has internal linkage if it is the name of
— a variable, function or function template that is explicitly declared static; or,
a variable that is explicitly declared const or constexpr and neither explicitly declared extern nor
previously declared to have external linkage
; or
— a data member of an anonymous union.
То есть то же + constrexpr.
Спасибо ему за ответ.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru