<分区>
我有以下情况:
template <class A, typename B, typename C, class D>
class Base
{
public:
// ctor and virtual dtor
// functions
class Inner
{
//...
};
protected:
// members
};
template <class E>
class Sub : public Base<std::string, float, double, E>
{
public:
// ctor and virtual dtor
// functions using Inner class inherit from Base
};
虽然 msvc 编译得很好(带有 ctp nov 2012 编译器的 visual studio 2012),但 gcc(4.9.0 从 trunk 构建)提示从 Base 使用的每个成员以及 Base 的内部类。
我注意到 msvc 在模板方面相当宽松,但是我还需要使用 gcc 在 linux 下运行和编译此代码。那么,msvc 接受而 gcc 不接受的伪造代码在哪里呢?