ev-duckdb-designated-init-iterator-003¶
| 字段 | 值 |
|---|---|
| 项目 | duckdb/duckdb |
| 固定 commit | 069cc9f9b5be |
| 路径 | extension/delta/src/delta_utils.cpp |
| 行段 | L190-L195 |
| 特性 | 指定初始化(designated initializers) |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-26 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
返回聚合时用指定初始化只填两个回调字段
为什么典型¶
C 风格迭代器结构体字段多,指定初始化明确表达“只关心 data 与 get_next”,其余字段值初始化。
摘录¶
// Wraps a callable object (e.g. C++11 lambda) as an EngineIterator.
template <typename Callable>
ffi::EngineIterator EngineIteratorFromCallable(Callable &callable) {
auto *get_next = &GetNextFromCallable<Callable>;
return {.data = &callable, .get_next = (const void *(*)(void *))get_next};
};
备注¶
生产扩展代码;与同文件的 EnginePredicate 构造初始化列表构成两种位置。