C++ 0x auto,decltype和模板函数

Chr*_*ris 2 c++ c++11

我一直在阅读上的C++ 0x CodeProject上的文章,并给它一个快速尝试在VC2010.但是我遇到了编译错误,我对这个问题有点不知所措.

#include < iostream>

template <typename FirstType, typename SecondType>
auto  AddThem(FirstType t1, SecondType t1) -> decltype(t1 + t2)
{
    return t1 + t2;
}

int main()
{

    auto a = 3.14;
    auto b = 3;
    auto c = AddThem<decltype(a),decltype(b)>(a,b);
    std::cout << c << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果出现此错误:

错误C2086:'FirstType t1':重新定义1> main.cpp(4):参见't1'的声明1> main.cpp(14):错误C2780:''unknown-type'AddThem(FirstType)':期望1参数 - 2提供1>
main.cpp(4):参见'AddThem'1> main.cpp(14)的声明:致命错误C1903:无法从先前的错误中恢复; 停止编译

谢谢你的任何想法.

Tim*_*mwi 10

这是因为你命名了两个参数t1.你可能打算叫第二个t2.