【问题标题】:VS2010 and VS2012 and C++11 error C2059: syntax error : '...' how to get around?VS2010 和 VS2012 和 C++11 错误 C2059: syntax error : '...' 如何解决?
【发布时间】:2012-12-14 09:07:04
【问题描述】:

我尝试编译simple C++11 code(我主要针对vs2010,也作为vs 2012的次要选项)they say它应该编译is compilable on some modern compilers 所以我想知道如何编译包含以下结构的代码:

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)...);
    }
};

在 vs 2010 中,如果在 vs2012 中不可能?

【问题讨论】:

    标签: c++ visual-studio-2010 c++11 visual-studio-2012 variadic-templates


    【解决方案1】:

    【讨论】:

    • 即使安装了 VS 2012 中的可变参数模板(Visual C++ 2012 年 11 月 CTP),它也无法编译
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 2017-09-02
    • 2023-04-02
    • 2012-08-22
    相关资源
    最近更新 更多