'default argument':无法从'initializer list'转换为'std :: initializer_list'

时间:2017-04-28 14:37:48

标签: c++ visual-studio visual-studio-2015 c++14

我有以下

VS 15中的

功能:

#  define variable_min_value(_var)          \
    _Generic(_var,                  \
         char: CHAR_MIN,            \
         unsigned char: (unsigned char)0,   \
         signed char: SCHAR_MIN,        \
         signed short: SHRT_MIN,        \
         unsigned short: (unsigned short)0, \
         signed int: INT_MIN,           \
         unsigned int: 0u,          \
         signed long: LONG_MIN,         \
         unsigned long: 0ul,            \
         signed long long: LLONG_MIN,       \
         unsigned long long: 0ull)

#define TIME_T_MIN   (variable_min_value((time_t)0))

输出:

'默认参数':无法从'初始化列表'转换为'std :: initializer_list'

这里有什么问题? 我甚至没有收到错误消息?非常感谢!

1 个答案:

答案 0 :(得分:3)

我打赌你收到了这个错误

  

错误C2440:'默认参数':无法从'初始化列表'转换为'std :: initializer_list< std :: tuple< int,bool>>'

因为你没有包含

#include <tuple>

这可以说是 not-very-explicative 错误消息。确保包含所有其他所需的标题(例如<initializer_list>)。