Здравствуйте, Sm0ke, Вы писали:
S>Как сделать, чтобы было красиво? Неужели придётся смириться со вторым?
тяжело что-то советовать когда не понятно что надо получить в конце. Можно попробовать сделать на вариадиках
template <std::size_t... Size>
struct omg {};
ну и дальше уже обрабатывать ситуацию когда sizeof...(Size) == 0
для пользователя всё выглядит даже круче чем через nullopt_t
omg<> empty;
omg<10> non_empty;