相关疑难解决方法(0)

带有附加可选模板参数的标准库容器?

在文章中多次阅读索赔 - 我想将此问题添加到Stackoverflow,并询问社区 - 以下代码是否可移植?

template<template<typename T, typename Alloc> class C>
void f() {
  /* some code goes here ... */
}

int main() {
  f<std::vector>();
}
Run Code Online (Sandbox Code Playgroud)

供应的实施是否std::vector真的允许有两个众所周知的额外的,默认的模板参数?这会使上面的代码格式错误,因为它假设有两个模板参数.见最后一段在这篇文章中对这种要求的一个例子.

c++ parameters standards templates stl

25
推荐指数
1
解决办法
1325
查看次数

更改给定 STL 容器的 value_type

假设我有一个 STL 容器类型(不是对象),例如vector<A>. 现在是这样value_typeA所以我想把它改成B

基本上,我想要一个这种形式的类模板,或其变体:

template<typename container, typename new_value_type>
struct change_value_type
{
    typedef /*....*/  new_container;
};
Run Code Online (Sandbox Code Playgroud)

这样我就可以按以下方式使用它:

typename change_value_type<vector<A>, B>::new_container  vectorOfB; 
vectorOfB.push_back(B());
vectorOfB.push_back(B());
vectorOfB.push_back(B());
//etc
Run Code Online (Sandbox Code Playgroud)

意思是,new_containervector<B>

是否可以?

c++ containers templates stl metaprogramming

5
推荐指数
2
解决办法
1150
查看次数