У меня есть следующий код:C++ не распознает оператор
class IConfigItem
{
public:
virtual ~IConfigItem() {};
virtual operator int() const { return 0; }
virtual operator std::string() const { return std::string(); }
};
template< typename T > class ConfigItem : public IConfigItem
{
private:
T m_value;
public:
ConfigItem<T>(const T& valueIn = 0) : m_value(valueIn) {}
operator T() const
{
return m_value;
}
};
template< typename T, typename ...Args > std::unique_ptr<T> makeUnique(Args&& ...args)
{
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
}
и я получаю следующее сообщение об ошибке:
Error 1 error C2143: syntax error : missing ',' before '...'
Я не понимаю, почему. Почему он не распознает ...
? Что я делаю не так? У меня есть тот же код на Ubuntu, и там он работает хорошо, теперь я скопировал это на VS2012, и он имеет ошибки. Пожалуйста, помогите мне.
VS2012 Безразлично» t suppport Variadic template, который является C++ 11. https://msdn.microsoft.com/en-us/library/hh567368(v=vs.110).aspx –
Для этого вам нужен VS2013. Шаблоны Variadic: https://msdn.microsoft.com/en-us/ library/hh567368.aspx – drescherjm
'...' вычисляется эллипсис, для дальнейшей информации. –