函数指针类型 API
协议 1 中的自定义类型使用显式函数指针进行注册,而不是使用vsql::make_type<> 模板。函数签名与协议 3 的等效签名不同——它们接受原始指针和长度,而不是 Arg 和 Result 对象。
函数签名
注册
vsql::make_type<kMyTypeName>()(带有编译时字符串 NTTP)是首选形式。make_type(MYTYPE)(没有模板参数)是协议 1 形式——对它的支持将在 0.0.5 版本后弃用。
原始 ABI 样式(函数)
协议 1 VDF 实现可以直接传递原始 C 结构体,而不是使用类型化包装器。这种样式将在 0.0.5 版本后弃用——对于所有新代码,请使用 类型化包装器。协议 1 中的聚合注册
对于聚合,.clear<>() 和 .accumulate<>() 接受原始 ABI 函数指针签名。.prerun<>() 和 .postrun<>() 不接受——构建器需要类型化签名(void(PrerunArgs, PrerunResult) 和 void(PostrunArgs)),即使对于协议 1 扩展也是如此。对于所有新代码,请使用 类型化聚合方法。

