инициализировать value_type и использовать мой оператор, который и того и другого принимает? Ambiguous moment
Кроме optional можно представить просто класс с template<class T>Class(T&&) конструктором. Есть ли выход?
Желаемый результат: инициализировать через мою функцию, а не через конструктор, который принимает внутренний тип.
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/std/optional#L739-L740
https://godbolt.org/z/59PbMoTbY
template <typemame T> class my_optional : public std::optional<T> { public: my_method_i_dont_want(...) = delete; }
C uniform initialization компилится или make_optional [[maybe_unused]] std::optional<int> b{Convert()}; [[maybe_unused]] auto c = std::make_optional<int>(Convert());
Да, вызовется только функция для int, не для optional<int>.
Обсуждают сегодня