Эта странная, странная инициализация
От: eremeer  
Дата: 13.09.07 15:52
Оценка:
Я не так давно программирую на С++, поэтому мой вопрос наверняка покажется многим элементарным, но тем не менее:
почему это работает, если определение константы и использование ее значения находятся в одном модуле (пробовал на онлайн-камю и студии 7.1):
const int i = 0;
char* p = i;

Разумеется, если изменить 0 на какое-нибудь другое число, код перестанет компилироваться. Предположим, компилятор оптимизирует и вместо кода обращения к памяти, содержащей i, вставляет 0, там, где это возможно. Но почему он не делает проверку типов?

и второй вопрос:
встретил код вида:
class
{
} obj = {};

Для чего применяется подобная "пустая инициализация"?
Код был найден здесь http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1601.pdf, в процессе поиска ответа на первый вопрос
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.