我试图用整数做一系列函数。
我最终使用了这段代码:std::function<void()> func[100];
但是当我试图像这样写入数组时:
func[option] = draw("optionName", 255);
我收到此错误:
Error C2679 binary '=': no operator found which takes a right-hand operand of type 'void' (or there is no acceptable conversion
编辑:
现在我使用此代码将函数写入数组:
func[option] = std::bind(draw, "optionName", 255);
但现在它给了我这些错误:
Error C2672 'std::invoke': no matching overloaded function found (compiling source file source.cpp) Project C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits 1491
Error C2893 Failed to specialize function template 'unknown-type std::invoke(_Callable &&,_Types &&...)' (compiling source file source.cpp) Project C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits 1491
答案 0 :(得分:1)
您的代码尝试调用该函数并将结果分配给数组。
如果您想使用特定参数分配函数调用,std::bind
将帮助您完成此操作。
函数模板
bind
为f生成转发调用包装器。调用这个包装器等同于调用f,其中一些参数绑定到args。