Сообщение Re[8]: std::get(std::variant) от 25.10.2025 7:49
Изменено 25.10.2025 7:55 rg45
Re[8]: std::get(std::variant)
Здравствуйте, so5team, Вы писали:
S>Для C++17 у меня получилось что-то вроде: https://godbolt.org/z/YnehMhsT9
S>Но не покидает ощущение, что более продвинутые в современном C++ товарищи смогут сделать проще и компактнее.
Не претендую на звание более продвинутого, но свой вариант предложу, всё-таки: https://godbolt.org/z/q9j3fbsKn
S>Для C++17 у меня получилось что-то вроде: https://godbolt.org/z/YnehMhsT9
S>Но не покидает ощущение, что более продвинутые в современном C++ товарищи смогут сделать проще и компактнее.
Не претендую на звание более продвинутого, но свой вариант предложу, всё-таки: https://godbolt.org/z/q9j3fbsKn
Re[8]: std::get(std::variant)
Здравствуйте, so5team, Вы писали:
S>Для C++17 у меня получилось что-то вроде: https://godbolt.org/z/YnehMhsT9
S>Но не покидает ощущение, что более продвинутые в современном C++ товарищи смогут сделать проще и компактнее.
Не претендую на звание более продвинутого, но свой вариант предложу, всё-таки:
https://godbolt.org/z/q9j3fbsKn
S>Для C++17 у меня получилось что-то вроде: https://godbolt.org/z/YnehMhsT9
S>Но не покидает ощущение, что более продвинутые в современном C++ товарищи смогут сделать проще и компактнее.
Не претендую на звание более продвинутого, но свой вариант предложу, всё-таки:
https://godbolt.org/z/q9j3fbsKn
void has_name_aux(...);
template<typename T> auto has_name_aux(const T& t) -> decltype(t.name);
template<typename T> constexpr bool has_name_v =
std::is_same_v<std::string, decltype(has_name_aux(std::declval<T>()))>;