У меня есть простой код:Ide сообщений об ошибке, хотя программа работает
#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() возвращает п Parametr, который был дан (WhichParametr (1, 2, 3) возвращает 2). Моя IDE Visual Studio 2013 говорит, что нет перегрузки, которая соответствует списку аргументов, жесткая программа работает нормально. Есть ли что-то в этом коде, которое я не должен использовать или это просто глупая среда? Заранее спасибо.
Спасибо! Теперь я теперь безопасно использовать –
Предоставлено ребятами из EDG. Они никогда не ошибались. –