小编Zak*_*Zak的帖子

C++ 17类中的变种<any>

以下代码编译得很好:

int main()
{
    variant<any> var;
    var = 5;
    cout << any_cast<int>(get<any>(var)) << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是当我试图把它variant<any>作为一个班级成员

struct MyClass{
    variant<any> var;
};

int main()
{
    MyClass s;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它不编译.我做错了什么或者是一些错误?

我正在使用gcc 7.1.0

In file included from /home/zak/Projects/Anytest/main.cpp:3:0:
/usr/local/gcc-7.1/include/c++/7.1.0/variant: In instantiation of ‘struct std::__detail::__variant::__accepted_index<const std::variant<std::any>&, std::variant<std::any>, void>’:
/usr/local/gcc-7.1/include/c++/7.1.0/variant:911:26:   required from ‘constexpr const size_t std::variant<std::any>::__accepted_index<const std::variant<std::any>&>’
/usr/local/gcc-7.1/include/c++/7.1.0/variant:940:6:   required by substitution of ‘template<class _Tp, class> constexpr std::variant<std::any>::variant(_Tp&&) [with _Tp = const std::variant<std::any>&; <template-parameter-1-2> = <missing>]’
/home/zak/Projects/Anytest/main.cpp:14:13:   required from here …
Run Code Online (Sandbox Code Playgroud)

c++ gcc variant c++17

12
推荐指数
1
解决办法
742
查看次数

标签 统计

c++ ×1

c++17 ×1

gcc ×1

variant ×1