Я прочитал все остальные вопросы, связанные с этой ошибкой, и не смог найти что-то подходящее для моего случая (или я их неправильно понял).
Привожу минимальный пример класса, содержащего std::variant, который представляет значение варианта (обработка исключений и ошибок опущена для краткости):
Я прочитал все остальные вопросы, связанные с этой ошибкой, и не смог найти что-то подходящее для моего случая (или я их неправильно понял). Привожу минимальный пример класса, содержащего std::variant, который представляет значение варианта (обработка исключений и ошибок опущена для краткости): [code]#include #include #include
class Value { public: Value(const std::string&); Value(const int&);
int main() { Value v_int { 666 }; Value v_str { "Hola" };
// int i = v_int.GetValue(); // ERROR int i = v_int.GetValue(); // OK but not desireable // std::string s = v_str.GetValue(); // ERROR std::string s = v_str.GetValue(); // OK but not desireable
Здесь есть простые (возможно, наивные) концепции. Они предназначены для отсечения типов, несовместимых с данным оператором.
namespace concepts
{
template
concept operator_compatible_with = requires ( T const& l, U const& r )
{
{ Op{}( l, r ) };
};...
Здесь есть простые (возможно, наивные) концепции. Они предназначены для отсечения типов, несовместимых с данным оператором.
namespace concepts
{
template
concept operator_compatible_with = requires ( T const& l, U const& r )
{
{ Op{}( l, r ) };
};...
Здесь есть простые (возможно, наивные) концепции. Они предназначены для отсечения типов, несовместимых с данным оператором.
namespace concepts
{
template
concept operator_compatible_with = requires ( T const& l, U const& r )
{
{ Op{}( l, r ) };
};...
У меня есть объект типа std :: variant , но мне нужно вызвать функцию, которая принимает только std :: variant .
Я мог бы преобразовать std :: variant std: Это не std :: monostate ?