C++ VS2010和VS2012以及C++;11错误C2059:语法错误:'';怎么走动?

C++ VS2010和VS2012以及C++;11错误C2059:语法错误:'';怎么走动?,c++,visual-studio-2010,c++11,visual-studio-2012,variadic-templates,C++,Visual Studio 2010,C++11,Visual Studio 2012,Variadic Templates,我尝试编译(我主要目标是vs2010,也作为第二选项VS2012),它将编译并 因此,我想知道如何编译包含以下结构的代码: struct C { A *_first__; B *_second__; C(A * _first__, B * _second__):_first__(_first__), _second__(_second__) { } template < typename K, typename ... T > static auto

我尝试编译(我主要目标是vs2010,也作为第二选项VS2012),它将编译并 因此,我想知道如何编译包含以下结构的代码:

struct C {
    A *_first__;
    B *_second__;
     C(A * _first__, B * _second__):_first__(_first__), _second__(_second__) {
    } template < typename K, typename ... T > static auto _a_caller__(K * k, T && ... args)->decltype(k->a(std::forward < T > (args) ...)) {
    return k->a(std::forward < T > (args)...);
    }
    template < typename...T > auto a(T &&...args)->decltype(_a_caller__(_first__, std::forward < T > (args)...)) {
        return _a_caller__(_first__, std::forward < T > (args)...);
    }
    template < typename...T > auto a(T &&...args)->decltype(_a_caller__(_second__, std::forward < T > (args)...)) {
        return _a_caller__(_second__, std::forward < T > (args)...);
    }
    template < typename K, typename...T > static auto _b_caller__(K * k, T && ... args)->decltype(k->b(std::forward < T > (args) ...)) {
        return k->b(std::forward < T > (args)...);
    }
    template < typename...T > auto b(T &&...args)->decltype(_b_caller__(_first__, std::forward < T > (args)...)) {
        return _b_caller__(_first__, std::forward < T > (args)...);
    }
    template < typename...T > auto b(T &&...args)->decltype(_b_caller__(_second__, std::forward < T > (args)...)) {
        return _b_caller__(_second__, std::forward < T > (args)...);
    }
};
struct C{
A*(首先);;
B*(秒)(秒);;
C(A*.\U first,B*.\U second):\U first(\U first),\U second(\U second){
}模板静态自动调用方(K*K,T&…args)->decltype(K->a(std::forward(args)…){
返回k->a(std::forward(args)…);
}
模板auto a(T&&…args)->decltype(\u a_调用者\uuuuu(\u first\uuuuu,std::forward(args)…){
返回调用方(_first,std::forward(args)…);
}
模板auto a(T&&…args)->decltype(\u a_调用者\uuuuuu(\u second\uuuuu,std::forward(args)…){
返回调用方(_second,std::forward(args)…);
}
模板静态自动调用方(K*K,T&…args)->decltype(K->b(std::forward(args)…){
返回k->b(std::forward(args)…);
}
模板auto b(T&&…args)->decltype(\u b_调用者\uuuuuu(\u first\uuuuuu,std::forward(args)…){
返回_b_调用者uuu(_first,std::forward(args)…);
}
模板auto b(T&&…args)->decltype(\u b_调用者\uuuuu(\u second\uuuuu,std::forward(args)…){
返回_b_调用者uu(_second_uu,std::forward(args)…);
}
};

在VS2010中,如果vs2012中不可能,VS2010和vs2012中都不支持可变模板: VS2012 CTP支持这些功能,但:


还可以查看您是否打算使用CTP。

可变模板在VS2010和VS2012中都不受支持: VS2012 CTP支持这些功能,但:


也可以看到你是否打算使用CTP。< /P>井,它甚至在VS 2012(Visual C++ + 2012年11月CTP)中都用不规则模板进行编译,即使在VS 2012(Visual C++ + 2012年11月CTP)中使用可变模板,IT钢也不能编译。