我想找到一种方便的方法来检查值是否在一组值中。如果我创建一个如下所示的简单函数,一切都运行良好:
bool IsIn(const int& value, initializer_list<int> initializerList)
{
vector<int> v(initializerList);
return find(v.begin(), v.end(), value) != v.end();
}
bool MyFunction()
{
return IsIn(1, { 1,2,3 });
}
如果我现在将此功能转换为更加用户友好的运算符&gt;&gt;,则会出现错误 C2059:语法错误:'{'
bool operator >>(const int& value, initializer_list<int> initializerList)
{
vector<int> v(initializerList);
return find(v.begin(), v.end(), value) != v.end();
}
bool MyFunction()
{
return 1 >> { 1, 2, 3 };
}
我没有在C ++规范中发现使用初始化列表作为参数仅限于“普通”函数。这是一个错误还是我做错了什么? (我正在使用VS2017)