跳转至

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 构造初始化列表构成两种位置。

查看固定 commit 源码 · 返回证据索引