VS 2015 Update 3内部编译器使用名称隐藏的奇怪递归模板模式时出错

时间:2017-01-11 11:33:44

标签: c++ visual-studio-2015 compiler-bug

这是一个小型的独立用例,我试图使用sqllocaldb start MSSQLLocaldb编译器进行编译。

VS2015 Update 3

这在VS 2013上运行正常,但VS 2015 Update 3失败。以下是我收到的错误消息。

template <typename Derived, typename SomeType> class BaseClass
{
public:        
    void NameHidingMethod(SomeType const & node) 
    {
        // Do Something
    }
};

namespace structured {
    typedef struct _Structure
    {
    } Structure;
    template <typename Derived> 
      using BaseClass = BaseClass<Derived, Structure>;
}

class DerivedClass : public structured::BaseClass<DerivedClass>
{
    public:
        using structured::BaseClass<DerivedClass>::NameHidingMethod; // Generates error
};

int main() {
    return 0;
}

我的代码合法吗?如果是,那么可能的解决办法是什么?

0 个答案:

没有答案