Предположим, у меня есть структура, которая содержит объединение с const
членами, например:
struct S
{
// Members
const enum { NUM, STR } type;
union
{
const int a;
const std::string s;
};
// Constructors
S(int t_a) : type(NUM), a(t_a);
S(const std::string & t_s) : type(STR), s(t_s);
};
Пока все хорошо.Но теперь скажите, что я хочу написать конструктор копирования для этого типа.
Не похоже, что это включает в себя выполнение чего-то гнусного, но так как мне нужно инициализировать константные члены в инициализаторах членов, я не вижукак это сделать, основываясь на логике, которая зависит от члена type
.
Вопросы:
Можно ли написать этот конструктор?
Если нет, то является ли это по сути синтаксическим упущением или есть какая-то фундаментальная причина, по которой язык не может поддерживать такую вещь?