From: Дмитрий Архипов (grisumbras_at_[hidden])
Date: 2024-11-14 16:07:52


чт, 14 нояб. 2024 г. в 16:13, Klemens Morgenstern via Boost
<boost_at_[hidden]>:
> If you create an extension, you'll need to call into the database differently
> using the indirections in sqlite3ext.h.
> In order to avoid conflicts, this library puts everything you include into
> an inline namespace (sqlite::ext), to avoid linker issues.
>
> That way you get access to the host db with the same API, but the
> internal calls are different,
> so you'll need to link to sqlite3-ext.
>
> You can then use a regular sqlite3 library from the same binary, but
> not the same TU.
> If you accidentally include boost/sqlite in both modes, but only link
> one you'll get linker errors.

All of this should be in the documentation.

> I don't exactly know what you mean here. You can use pfr in C++20 for
> a static_result_set (and describe for earlier standards).

Boost.PFR is a C++14 library, so I don't understand where the C++20
restriction comes from.

> I don't think I fully understand. What would `f`/`this` be pointing to
> when `step` gets called?

This is a simplified implementation of what I meant:
https://godbolt.org/z/Mb5eqfvW4. Here, the state of the aggregate
function is stored in the object whose member functions are called,
and also the arguments are passed separately.