【发布时间】:2014-12-24 00:21:57
【问题描述】:
我有一些简单的代码:
#include <iostream>
#include <boost/variant.hpp>
using namespace std;
template <typename Arg, typename... Args>
auto WhichParametr(unsigned int n, Arg arg, Args... args) -> boost::variant < Arg, Args... > {
if (n != 1)
return WhichParametr(n - 1, args...);
return arg;
}
template <typename T>
T WhichParametr(unsigned int n, T arg){
return arg;
}
int main(){
cout << WhichParametr(4, 1, 2, '3', "foo");
cin.get();
cin.get();
return 0;
}
WhichParametr() 函数返回给定的 n 个参数(WhichParametr(1, 2, 3) 返回 2)。 我的 IDE Visual Studio 2013 说没有与参数列表匹配的重载,艰难的程序运行良好。该代码中是否有我不应该使用的东西,或者这只是愚蠢的IDE?提前致谢。
【问题讨论】:
标签: c++ visual-studio boost