Hello,
I have some ideas for config/predef, multiprecision and others.
config/predef:
What bothers me is the inconsistent nomenclature of several macros. For
example,
integer:
BOOST_HAS_INT128
BOOST_NO_INT64_T
float:
BOOST_FLOATx_C
decimal:
?
I think you should definitely generalize that:
BOOST_HW_TYPE_AVAILABLE:
only if TYPE is supported by the hardware (based on BOOST_HW_SIMD*),
but not necessarily by the compiler or selected architecture
BOOST_LIB_TYPE_AVAILABLE:
TYPE is available from the c++library/compiler
For example, float80_t: has HW support on x86
(BOOST_HW_FLOAT80_AVAILABLE is defined), but not on MSVC
(BOOST_LIB_FLOAT80_AVAILABLE is not defined then)
BOOST_SW_TYPE_AVAILABLE:
there is an external emulation of TYPE
For example, multiprecision A's complement fixed precision integer
(TODO) or "half" by sourceforge
Of course, this must be set manually.
At least for int/float/decimal 8..512 this should be available.
BOOST_HW_MACHINE_SIZE: the real word size of HW
BOOST_ARCH_MACHINE_SIZE: the word size of the architecture
For example, DOS on AMD Ryzen BOOST_HW_MACHINE_SIZE = 64 and
BOOST_ARCH_MACHINE_SIZE = 16
multiprecision/float128_t:
there are still many features missing
most values in numeric_limits