【发布时间】:2014-10-14 08:08:50
【问题描述】:
我正在寻找一种方法来提供一个函数,该函数采用模板化 (STL) 容器,但要求其元素为特定类型(例如 int)。
这些函数调用应该是有效的:
std::vector<int> Argument;
void foo( Argument );
std::list<int> Argument
void foo( Argument );
std::deque<int> Argument
void foo( Argument );
...etc
这些函数调用应该是无效的:
std::vector<float> Argument;
void foo( Argument );
std::list<double> Argument
void foo( Argument );
std::deque<char> Argument
void foo( Argument );
...etc
有没有办法对“foo”进行模板化,以便接受int 的容器,但不接受具有不同元素类型的容器?
最好, 本
【问题讨论】:
-
只是检查一下,你真的需要一个容器吗?单纯的迭代器不起作用吗?
-
顺便说一句:它必须是标准库容器,还是
int的任何容器足够好?甚至是不可变的序列?
标签: c++ templates stl template-argument-deduction