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

Будут ли все константы гарантированно инициализированы к моменту обращения к ним из разных единиц трансляции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как реализовать свой тип данных http://www.cyberforum.ru/cpp-beginners/thread1240527.html
Здравсвтуйте,подскажите пожалуйста как реализовать с с++ свой тип данных. Допустим хочу завести массив,где каждому arr будет соответсвовать две переменные(arr.a,arr.b). Если точнее - arr.a,arr.b ... arr.a,arr.b. В дельфи такое делалось через type. Читал про структуры,но вроде это не то,что надо.
C++ Перегруженный operator<< Есть допустим такая дружественная функция: объявление template<typename Type> friend std::ostream& operator<<(std::ostream&, Stack<Type>&); определение template<typename Type> std::ostream& operator<<(std::ostream& stream, Stack<Type>& obj_show) { Stack<Type>::node* ptr = obj_show.top; http://www.cyberforum.ru/cpp-beginners/thread1240484.html
Вывести на экран суммарный результат, указав число студентов сдавших и проваливших экзамен C++
День добрый помогите решить задачу: есть 10 студентов ( 10 раз на екран должно высвечиватся"Введите результат" результат- если пользователь пишет 1,значит студент сдал,если пишет 2 - провалил нужно -подсчитать число результатов каждого типа) -вывести на экран суммарный результат,указав число студентво здавших и проваливших -если хотя бы 8 студентов сдало тест написать "Отлично"
C++ Как изменить выводное окно?
Я меняю выводное окно (или как там называется штука которая появляется при запуске программы) через "Свойства" Но когда я отправляю программу на другой компьютер, все изменения пропадают! Как мне изменить выводное окно?
C++ На основании строки генерируем все возможные слова http://www.cyberforum.ru/cpp-beginners/thread1240376.html
имею такой код #include <iostream> #include <math.h> #include <sstream> using namespace std; void ALLWords(string A, string &w, int N) { if ( N == w.size() ) { cout<<w<<endl;
C++ Какие соглашения действуют в C++? Например, в PHP следующие соглашения наименования: Имена классов с большой буквы (SomeClass) Имена переменных с маленькой буквы (some_var) Имена функций с маленькой буквы (someFunction) А какие соглашения действуют в C++? подробнее

Показать сообщение отдельно
DrOffset
6840 / 4051 / 924
Регистрация: 30.01.2014
Сообщений: 6,855
12.08.2014, 00:10     Будут ли все константы гарантированно инициализированы к моменту обращения к ним из разных единиц трансляции
Цитата Сообщение от gng Посмотреть сообщение
Хотя, возможно, b в этом случае будет инициализирована динамически
Кстати не возможно, а точно так.
3.6.2/2
Together, zero-initialization and constant initialization are called static initialization;
В то время как constant initialization это:
— if each full-expression (including implicit conversions) that appears in the initializer of a reference with
static or thread storage duration is a constant expression (5.19) and the reference is bound to an lvalue
designating an object with static storage duration or to a temporary (see 12.2);
— if an object with static or thread storage duration is initialized by a constructor call, if the constructor is
a constexpr constructor, if all constructor arguments are constant expressions (including conversions),
and if, after function invocation substitution (7.1.5), every constructor call and full-expression in
the mem-initializers and in the brace-or-equal-initializer s for non-static data members is a constant
expression;
— if an object with static or thread storage duration is not initialized by a constructor call and if every
full-expression that appears in its initializer is a constant expression.
Так, что то, что не решился бы - это правильно. Глобальные переменные вообще нужно минимизировать (а то и полностью искоренять). Но тем не менее код был бы корректный.

Добавлено через 6 минут
Это плохо еще и тем, что в один прекрасный момент кто-нибудь заменит 5 на вызов функции и получим UB.
 
Текущее время: 04:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru