C++ C++;std::将s映射为参数
我可以接受任何类型的std::map参数吗C++ C++;std::将s映射为参数,c++,map,std,C++,Map,Std,我可以接受任何类型的std::map参数吗 void myFunction(const std::map<std::string,[INSERT_ANY_CLASS]>& tMap); void myFunction(const std::map&tMap); 是的,您可以将其作为函数模板: template<class T> void myFunction(const std::map<std::string,T>& tMap); 模板
void myFunction(const std::map<std::string,[INSERT_ANY_CLASS]>& tMap);
void myFunction(const std::map&tMap);
是的,您可以将其作为函数模板:
template<class T>
void myFunction(const std::map<std::string,T>& tMap);
模板
void myFunction(const std::map&tMap);
是的,您可以将其作为函数模板:
template<class T>
void myFunction(const std::map<std::string,T>& tMap);
模板
void myFunction(const std::map&tMap);
并且只要类T支持映射构造-例如正确的复制构造函数等@Blazes:solid point,具有微妙的含义。虽然从表面上看,如果t
的map
与map
的要求不兼容,您似乎没有t
的map来调用函数,它通常是实例化类不支持的map
模板方法之一的第一个函数,它将触发编译器错误……这在这里有点不相关,不是吗?调用者必须具有要开始的映射。此函数可以安全地假定T
是一个有效类型。只要类T支持映射构造(例如,正确的副本构造函数等)。@Blazes:solid point,具有微妙的含义。虽然从表面上看,如果t
的map
与map
的要求不兼容,您似乎没有t
的map来调用函数,它通常是实例化类不支持的map
模板方法之一的第一个函数,它将触发编译器错误……这在这里有点不相关,不是吗?调用者必须具有要开始的映射。此函数可以安全地假定T
是有效类型。