错误:函数模板已经继承 - 使用icpc

时间:2017-02-10 14:42:39

标签: c++11 inheritance constructor using icc

我正在编写一个继承自std::vector(*)的类,我希望能够以所有可用于其基础的方式构造它,所以我使用

#include <vector>

struct B : public std::vector<double>
{
    using std::vector<double>::vector;
};

使用g ++和clang进行编译很好,但是英特尔编译器给了我(带有标记-std=c++11

  

错误:函数模板“B :: B(_ForwardIterator,_ForwardIterator,const std :: __ 1 :: allocator&lt; double&gt;&amp;)”已经继承自“std :: __ 1 :: vector&lt; double,std :: __ 1 ::分配器&LT;双&GT;&gt;“中

using指令。 任何想法为什么会发生这种情况和/或如何解决它?

更新:这似乎取决于操作系统,在Linux和Windows平台上运行良好但在OS X上失败。在英特尔论坛上正在进行讨论。

(*)我不想使用多态性,如果不直接相关,请避免“这是不好的做法”答案 - 实际上有很多帖子同意这是可以接受的。

0 个答案:

没有答案