Я пытаюсь сделать что-то подобное.
template <typename T>
struct thingo {
int always;
T sometimes;
};
thingo <> compile_error; // <- wont compile
thingo <nullptr_t> wastes_space; // compiles but nullptr_t takes space anyway
Является ли наследование от обертки int единственным способом этого?
Как насчет:
struct None {};
// Or without an extra struct:
// typedef void None;
template <typename T = None>
struct thingo {
int always;
T sometimes;
};
template <>
struct thingo<None> {
int always;
};
void
?