Как получить значение mapbox :: util :: option в шаблонной функции

С mapbox :: вариант (https://github.com/mapbox/variant/blob/master/include/mapbox/variant.hpp), Я могу сделать следующее:

using variant = mapbox::util::variant<Args...>;
variant<std::string> v;
// do something with v
...
// Get string from v:
std::string s = v.get<std::string>();

Но когда я пытаюсь реализовать это с помощью функции шаблона, я получаю ошибку компиляции:

template <typename T>
T getValue()
{
variant<T> value{};
// Get value
...
return value.get<T>();
}

GCC жалуется:

../utils.hpp:52:23: ошибка: ожидаемое первичное выражение перед ‘>’
знак
возвращаемое значение.get ();
^ ../utils.hpp:52:25: ошибка: ожидаемое первичное выражение до токена ‘)’
возвращаемое значение.get ();

Что не так с функцией шаблона?

0

Решение

Я думаю, что вы хотите:

return value.template get<T>();

этот ответ дает хорошее / полное описание того, почему …

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]