Re: std::optional ~ как value-параметр шаблона
От: Chorkov Россия  
Дата: 07.08.23 14:38
Оценка: 12 (1)
Здравствуйте, Sm0ke, Вы писали:

S>Как сделать, чтобы было красиво? Неужели придётся смириться со вторым?


Я бы использовал auto — параметр шаблона:

template <auto Size>
struct omg {
    static_assert(( std::is_convertible_v<decltype(Size), std::optional<std::size_t> > ));
    static constexpr std::optional<std::size_t> size={Size}; // используем так, как хотели бы использовать параметр шаблона.
  
    //...
};

omg<123> a;
omg<std::nullopt> b;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.