$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Ivan Matek (libbooze_at_[hidden])
Date: 2025-01-21 17:56:21
On Tue, Jan 21, 2025 at 6:06â¯PM Peter Dimov <pdimov_at_[hidden]> wrote:
> Basically, _fast types are almost never fast. Let's hope this curse doesn't
> afflict Decimal _fast types as well. :-)
>
> Thank you for confirming this, now I regret not writing that also in
review. :)
To recap the discussion wrt pass by reference:
points we agree on(wrt 64 bit x86):
- if we pass by value on Windows we are out of luck for most decimal
types since there is ABI limitation for types greater than 8 bytes
- use of uint16_fast_t in implementation pushed decimal64_fast over the
limit of Linux ABI(16 bytes), _fast std:: types are not fast, would be nice
to change this even if will not help on Windows
points we disagree on:
- pass by reference for large types (and if necessary mutate inplace) is
still my prefered API. If we do want value returning functions then for
large types I would prefer to pass args by const reference.
Not trying to change your mind, just recapping above discussion, doing all
sizeof and ABI math is tricky.