Patrick Pelissier
f7f5db61d3
Fix formatting
2023-11-01 11:13:54 +01:00
Patrick Pelissier
32b00eb433
Add new operator GENTYPE
2023-10-21 19:05:08 +02:00
Patrick Pelissier
796f2619e5
Change M_BY_NARGS semantics:
...
simplify suffix by __ # NARGS
instead of __NARGS_ # NARGS
Driver: reduce macro name length.
2023-10-20 00:02:38 +02:00
Patrick Pelissier
268192138a
WIP M_ON_EXCEPTION
2023-10-19 22:54:51 +02:00
Patrick Pelissier
5f4303624f
Adding macro M_CHAIN_OBJ
2023-10-14 15:55:59 +02:00
Patrick Pelissier
1454bcebe4
Add unique name identifier
...
in order to avoid Wshadow warning
in generated code.
2023-10-14 15:30:57 +02:00
Patrick Pelissier
bf68340106
Add macro M_CHAIN_INIT for support of partially constructed object.
2023-09-09 18:40:32 +02:00
Patrick Pelissier
e049b83a9e
Rename M_SUFFIX_FUNCTION_BY_NARGS in M_BY_NARGS
...
and updates suffix with __NARGS_
in order to be more explicit.
2023-07-10 00:58:31 +02:00
Patrick Pelissier
31ac3999a1
Add new operators
2023-07-07 22:17:39 +02:00
Patrick Pelissier
a0818419ab
Fix format
2023-07-04 01:08:40 +02:00
Patrick Pelissier
ca9571a110
Fix no stdio:
...
M_CSTR macro cannot be available if there is no stdio
2023-06-29 21:26:22 +02:00
Patrick Pelissier
91f5f513c4
Update macro names
...
Make global logic easier.
2023-06-11 23:32:02 +02:00
Patrick Pelissier
c63ce84e45
Update logic to select which linkage to use
...
so that user code can be written easily
M_USE_EXTERN_DECL / M_USE_DECL activates functions that are not inlined.
If M_USE_EXTERN_DEF / M_USE_DEF is also defined, then the definition is emitted instead of the declaration.
2023-06-11 23:32:02 +02:00
Patrick Pelissier
92bb380117
Rewrite order in preprocessing if to simplify user code
2023-06-11 23:32:02 +02:00
Patrick Pelissier
1278d2f8a0
Implement noinline another way
2023-06-11 23:32:02 +02:00
Patrick Pelissier
17ded6fcc8
Update M_USE_EXTERN_FINE_GRAINED to avoid warnings
2023-06-11 23:32:02 +02:00
Patrick Pelissier
19ce371533
Add support for M_USE_EXTERN_FINE_GRAINED to enable / disable inline semantics alongside the translation unit by redefining it when needed
2023-06-11 23:32:02 +02:00
Patrick Pelissier
0bd1bcb68e
Another way to request the desired semantics, compatible with clang
2023-06-11 23:32:02 +02:00
Patrick Pelissier
b50813713a
Define internal M_INLINE:
...
it is used to control the inline semantics.
By combining it with optimize option "-fno-inline"
for the internal M*LIB function (using _Pragma optimize)
we can control easily if we want to use an inline version
or call of an external function.
Define new user API:
* M_USE_EXTERN_DECL : define it before including any MLIB header to requests to call the M*LIB functions and don't inline then.
* M_USE_EXTERN_DEF : define it once in a translation unit to define the M*LIB functions. This translation unit shall contain all templated macro too.
If you use one option, you need to use the other one too for another translation unit.
2023-06-11 23:32:02 +02:00
Patrick Pelissier
dafe4bcec5
Add basic test for M_DEFAULT_ARGS
...
Print hint to developper in case of incorrect usage
2023-06-03 00:56:13 +02:00
Patrick Pelissier
82bdcc685a
Add internal macro MQLET for internal M_LET use
2023-05-05 22:15:13 +02:00
Patrick Pelissier
cd2fc05573
Add FIXED_SIZE property
2023-05-05 21:41:05 +02:00
Patrick Pelissier
0a39a17d36
The undefined number of element value of serial _array_start
...
is now (size_t)-1 and no longer 0.
Moreoever, a serialization interface may refuse outputting data
if it doesn't know the number of elements.
In which case, the container shall explictly compute the number
of elements and recall the serial object _array_start method.
2023-04-27 00:01:50 +02:00
Patrick Pelissier
219c62ff5d
Provide a way to alter the standard naming convention for the functions
...
Close #72
2023-04-22 09:33:08 +02:00
Patrick Pelissier
95762a058c
Fix const attribute of _get_emplace
2023-04-19 22:42:21 +02:00
Patrick Pelissier
e3e94ca238
Add M_ATTR_COLD_FUNCTION attribute
2023-04-16 19:15:22 +02:00
Patrick Pelissier
ae81271b2a
Fix name of internal variable for M_DEFER
2023-04-16 08:33:45 +02:00
Patrick Pelissier
6580601969
Add M_ATTR_NO_RETURN attribute support (not C23 compatible yet)
2023-04-15 22:50:27 +02:00
Patrick Pelissier
25a2eb0875
Correct syntax
2023-04-11 21:32:38 +02:00
Patrick Pelissier
0aa6a9f0cf
Update comments
2023-04-03 13:19:50 +02:00
Patrick Pelissier
25d4829d7b
Add utilities function for parsing FILE or char* while skipping space character
2023-04-03 13:17:25 +02:00
Patrick Pelissier
7534aa0d61
Add internal M_UNLIKELY_NOMEM to help coverage computation
2023-04-03 00:05:29 +02:00
Patrick Pelissier
4e4e21793c
Add _get_emplace functions for associative array
2023-03-29 22:59:43 +02:00
Patrick Pelissier
39a719c3f0
Fix warnings
2023-03-28 23:43:21 +02:00
Patrick Pelissier
8b643b4878
Add support for emplace detection in associative array + M_LET
2023-03-28 23:43:08 +02:00
Patrick Pelissier
ea2715aa75
Remove static assert. Some old compilers failed to simplify into a constant expression, resulting in build failure
2023-03-24 23:54:49 +01:00
Patrick Pelissier
66f5e6c67d
Support for more than one expression in M_DEFER
2023-03-18 17:56:44 +01:00
Patrick Pelissier
42d3042c15
Add NOCLEAR property to M_BASIC_OPLIST and prepare injection for M_DEFER
2023-03-18 17:25:08 +01:00
Patrick Pelissier
08b4bc9052
M_LET_IF reuses clear mechanism provided by M_DEFER
2023-03-18 15:14:31 +01:00
Patrick Pelissier
d1094999f5
Update M_ASSERT to separate requirement for predicate
2023-03-18 09:15:11 +01:00
Patrick Pelissier
ab3aa33fac
Add M_SET_THROUGH_INIT_SET
2023-03-18 08:08:23 +01:00
Patrick Pelissier
535e00366a
Correct reported errors
2023-03-18 00:21:37 +01:00
Patrick Pelissier
144ae9c5ed
Add ID support for GAIA
2023-03-17 21:47:04 +01:00
Patrick Pelissier
94b6d1b9fd
Fix computation of HASH_FINAL
2023-03-13 22:17:10 +01:00
Patrick Pelissier
2f57766249
Rename NOEXCEPT to NOCLEAR property as NOEXCEPT
...
doesn't provide enough guarantee to the exception handler.
2023-03-12 20:23:31 +01:00
Patrick Pelissier
11dc7afc06
Add NOEXCEPT property and M_TEST_NOEXCEPT_P macro to test it
2023-03-05 19:44:04 +01:00
Patrick Pelissier
800a1e5c36
Add support for RET in API transformation and register global bool oplist
2023-02-22 22:46:46 +01:00
Patrick Pelissier
56f51c59af
Add comments about locale dependent functions.
2023-02-11 23:47:11 +01:00
Patrick Pelissier
39e67eebdc
EMPLACE: Fix expansion of methods as macro in the oplist
...
by performing another evaluation step.
2023-01-28 14:49:07 +01:00
Patrick Pelissier
870a6f4b57
Update to 0.7.1
2023-01-02 13:06:29 +01:00