使用c++模板形参作为另一个模板的实参
Using C++ template parameter as argument to another template?
我想让下面的代码编译:
template <typename K, typename V>
static void addMapping(const K& id, const V& index, std::map<K, V>& mapset)
{
std::pair< std::map<K, V>::iterator, bool > ret;
// ...
}
但是我得到以下错误信息:
error: type/value mismatch at argument 1 in template parameter list for ‘template<class _T1, class _T2> struct std::pair’
std::pair< std::map<K, V>::iterator, bool > ret;
我记得当你想使用一个模板形参作为另一个模板的参数时,你需要写一些特别的东西,但我不记得那是什么了…
改变这一行:
std::pair< std::map<K, V>::iterator, bool > ret;
为:
std::pair< typename std::map<K, V>::iterator, bool > ret;
由于std::map<K, V>::iterator
依赖于模板参数,你需要告诉编译器它是一个类型
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 运行同一解决方案的另一个项目的项目
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- C++从另一个类访问公共静态向量的正确方法是什么
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 使用std::transform将一个范围的元素添加到另一个范围中
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- 正在获取另一个函数作用域中的参数值
- 另一个类中的自定义类实例数组使编译器崩溃
- 传递boost::函数,该函数接受一个模板实参作为默认为NULL的形参
- 当涉及一个重载函数作为实参时,模板实参推导是如何工作的
- 如何将const形参从一个成员函数传递到另一个成员函数
- 对于每个模板类型,都有一个集合类型的实参
- 为int实参创建一个带有默认情况的转换用例.但是默认情况下无法正确处理字符
- c++默认实参值使用另一个形参的值
- 从另一个参数的值设置默认参数值
- 断言模板实参是一个迭代器/指针
- 使用c++模板形参作为另一个模板的实参