From: Vinnie Falco (vinnie.falco_at_[hidden])
Date: 2024-03-21 14:10:52


On Thu, Mar 21, 2024 at 6:51 AM Misha Komarov via Boost
<boost_at_[hidden]> wrote:
> Regarding the unified interface, you mean something like this?

If I were writing such I library I would:

* minimize the use of templates
* place as few function definitions as possible in the headers
* make the library a compiled lib (NOT header-only)
* require all input and output passed in contiguous buffers of char

I would not:

* use generic input iterators and output iterators
* try make everything header-only

This is the philosophy I have adopted ever since writing Boost.JSON.
Having extensively written libraries both ways I have concluded that
for most of the domains I work in, the purported benefits of
templating everything (muh generic algorithm) do not outweigh the
downsides. I especially don't see the value in templating the input
and output iterators.

I realize this will come across as an unpopular opinion, given the
ingrained dogma of writing things "STL style."

Thanks