进行表单和onload时代码中的Lambda错误 [英] Lambda error in code when making form and onload
问题描述
我收到此错误:
IntelliSense:不存在从"lambda [] void(Form :: Form * arg1)-> void"到"Form :: OnLoad"的合适转换函数c:\ users \ topkek \ desktop \ project \ test \ tset \测试\ main.cpp
IntelliSense: no suitable conversion function from "lambda []void (Form::Form *arg1)->void" to "Form::OnLoad" exists c:\users\topkek\desktop\project\test\tset\test\main.cpp
实际错误:
错误8错误C2440:'类型转换':无法从'`匿名命名空间'::'转换为'Form :: OnLoad'c:\ users \ topkek \ desktop \ project \ test \ tset \ test\ main.cpp
Error 8 error C2440: 'type cast' : cannot convert from '`anonymous-namespace'::' to 'Form::OnLoad' c:\users\topkek\desktop\project\test\tset\test\main.cpp
这是代码:
new Form::Form("TEST_MAIN", "Test main", (Form::OnLoad)[](Form::Form* arg1)->void {
form.h:
typedef void(*OnLoad)(Form*);
Form(const char* WindowClass, const char* Title, OnLoad Func = NULL);
Form.cpp:
Form::Form(const char* szWindowClass, const char* Title, OnLoad Func) {
推荐答案
(Form::OnLoad)[](Form::Form* arg1)->void { /*...*/ })
那是一个奇怪的lambda:)
That is one weird lambda :)
我不确定您到底想做什么,但是您不需要lambda:
I'm not sure what exactly you are trying to do, but you don't need a lambda for this:
auto f = new Form::Form("TEST_MAIN", "Test main", &Form::OnLoad);
^^^^^^^^^^^^^
Address of function
如果您想要lambda,请删除开头:
If you want a lambda, drop the start:
auto f = new Form::Form("TEST_MAIN", "Test main", [](Form::Form* arg1)->void {});
这篇关于进行表单和onload时代码中的Lambda错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!