Шаблон-кандидат игнорируется: не удалось вывести аргумент шаблона «T» с помощью std::variantC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Шаблон-кандидат игнорируется: не удалось вывести аргумент шаблона «T» с помощью std::variant

Сообщение Anonymous »

Я прочитал все остальные вопросы, связанные с этой ошибкой, и не смог найти что-то подходящее для моего случая (или я их неправильно понял).
Привожу минимальный пример класса, содержащего std::variant, который представляет значение варианта (обработка исключений и ошибок опущена для краткости):

Код: Выделить всё

#include 
#include 
#include 

class Value {
public:
Value(const std::string&);
Value(const int&);

template const T& GetValue() const;

private:
std::variant m_value;
};

Value::Value(const std::string& val):m_value(val) {}
Value::Value(const int& val):m_value(val) {}

template const int& Value::GetValue() const {
return std::get(m_value);
}

template const std::string& Value::GetValue() const {
return std::get(m_value);
}

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

std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79161773/candidate-template-ignored-couldnt-infer-template-argument-t-with-stdvaria[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Можно ли проверить концепцию на соответствие std::variant и std::vector?
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Можно ли проверить концепцию на соответствие std::variant и std::vector?
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Можно ли проверить концепцию на соответствие std::variant и std::vector?
    Anonymous » » в форуме C++
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Преобразовать std :: variant в std :: variant
    Anonymous » » в форуме C++
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Вывести параметры шаблона для параметра шаблона std::variant
    Anonymous » » в форуме C++
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»