Можно ли определить объединение, как мы можем сделать для именованного пространства имен? Я имею в виду, можем ли мы объявить первый тип в объединении, а затем в другом файле добавить еще один тип в объединение?
На данный момент у меня есть базовый класс, который содержит объединение битовых типов (unsigned int и другие, которые соответствуют каждому производному классу). Я хотел бы разделить их на производный класс и построить постепенно это объединение.
Нет, например, для structs/classes
, enums
,
N3337 7.3 / 1
Пространство имен — это произвольно названный декларативный регион. Имя пространства имен может быть использовано для доступа
объекты, объявленные в этом пространстве имен; то есть члены пространства имен.В отличие от других декларативных регионов,
Определение пространства имен может быть разбито на несколько частей одного или нескольких единиц перевода.
Нет. Как это можно заставить работать (не то, чтобы это желательно), с
отдельная подборка. Рассмотрим что-то вроде:
union U { int i; double d; }
void
f()
{
U aU;
g( &aU );
// ...
}
Сколько места выделено компилятору в стеке для aU
,
Учитывая, что DLL еще не написана содержит:
union U { char buff[1000]; };
void
g( U* aU )
{
// Use all 1000 bytes...
}
(Обратите внимание, что согласно стандарту вышеупомянутое поведение не определено.
То, что вы спрашиваете, потребовало бы, чтобы это работало.)