Bon*_*ero 9 c++ templates variadic-templates c++17
任何人都可以告诉我为什么std::get<T>C++ 17是一个全局函数而不是一个成员函数variant<...>?
如果get<T>()是成员函数模板,template则在依赖上下文中调用它时需要关键字.例如:
template <typename Variant>
void f(Variant const& v) {
    auto x0 = v.template get<T>(); // if it were a member
    auto x1 = get<T>(v);           // using a non-member function
}
Run Code Online (Sandbox Code Playgroud)
即使没有using声明或指令,get()如果同时发现它们std::variant<...>并get()在命名空间中声明std.因此,似乎没有充分的理由使其成为成员函数,因为全局函数更容易使用.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           443 次  |  
        
|   最近记录:  |