沉默流星 发表于 2025-8-15 16:00:52

匿名函数这种应该如何封装

本帖最后由 沉默流星 于 2025-8-15 17:47 编辑

代码如下:
   CROW_ROUTE(app, "/")([]() {
      return "Hello world ";
      });#define CROW_ROUTE(app, url) app.template route<crow::black_magic::get_parameter_tag(url)>(url)

hcwanz 发表于 2025-8-15 16:33:18

建议称为匿名方法(函数), 定义一个类的静态方法, 然后当匿名方法去传就行.
这玩意火山没有对应概念.

大概用法:
CROW_ROUTE(...)(火山类名::静态方法)

注意别在`静态方法`后加`()`, 这里是传入, 不是调用.

沉默流星 发表于 2025-8-15 17:33:12

hcwanz 发表于 2025-8-15 16:33
建议称为匿名方法(函数), 定义一个类的静态方法, 然后当匿名方法去传就行.
这玩意火山没有对应概念.



请给个例子

hcwanz 发表于 2025-8-15 17:40:30

本帖最后由 hcwanz 于 2025-8-15 17:43 编辑



沉默流星 发表于 2025-8-15 17:46:40

hcwanz 发表于 2025-8-15 17:40


好像不行





就算强转都不行



hcwanz 发表于 2025-8-15 17:55:52

本帖最后由 hcwanz 于 2025-8-15 17:57 编辑

返回值类型改一下, 我这里是为了方便用的文本型

沉默流星 发表于 2025-8-15 17:56:59

hcwanz 发表于 2025-8-15 17:55
返回值改一下, 我这里是为了方便用的文本型

返回值改成什么

hcwanz 发表于 2025-8-15 17:57:34

我怎么知道, 你从c++的源码里翻啊

沉默流星 发表于 2025-8-15 18:00:56

hcwanz 发表于 2025-8-15 17:57
我怎么知道, 你从c++的源码里翻啊

应该不行,C++中他是一个类,他这个类怎么支持传字符串类型?


hcwanz 发表于 2025-8-15 18:05:37

本帖最后由 hcwanz 于 2025-8-15 18:07 编辑

他这个类的构造函数接受的是字符数组, 返回类型应该要用字符指针(要多字节指针, 火山默认的是宽字节),

类型是 char*, 你看看火山官方封了没, 没有自己封一个.
然后把静态方法改成嵌入式的:

字符指针 拟匿名方法()
{
@ return "你好";
}


页: [1] 2 3 4
查看完整版本: 匿名函数这种应该如何封装