Patrick Pelissier
25fe26deaa
Happy new year
2021-01-13 20:18:01 +01:00
Patrick Pelissier
a29682ca29
Create M_ASSERT macro to encapsulate assert within M*LIB
...
The goal is to enable the user to override this macro if needed so that it can enable or disable the M*LIB witout impacting its own assertions.
2020-10-29 22:46:17 +01:00
Patrick Pelissier
0818d0ac7c
Fix macro formatting.
2020-10-23 21:46:34 +02:00
Patrick Pelissier
54d4b80368
Reformat macro to 80 characters
2020-10-21 23:23:40 +02:00
Patrick Pelissier
63eee6bba3
Update comments
2020-10-03 14:07:14 +02:00
Patrick Pelissier
b3a1a75f6f
Rename internal types:
...
a suffix ending with _ct means confidential type
ans is reserved for M*LIB internal usage.
OPLIST doesn't use the external types
but rather the internal types.
It enables to be independent of the real names
of the external types.
Such external names are planned to be fully customizable
(i.e. the user may define a name that suits its coding style)
2020-10-03 14:07:14 +02:00
Patrick Pelissier
29bcc00202
Update format
2020-07-19 01:06:48 +02:00
Patrick Pelissier
4488853642
Factorization of _sort_union
2020-07-19 00:59:11 +02:00
Patrick Pelissier
d5dc5d083d
Fix _sort_union bug
2020-07-19 00:55:51 +02:00
Patrick Pelissier
a3116dd813
Update comments
2020-07-18 09:54:12 +02:00
Patrick Pelissier
8a36b5ff15
Workaround to avoid CLANG unused function warnings
2020-07-09 22:14:00 +02:00
Patrick Pelissier
75f4f23144
Add comments and fix Pn level
2020-07-02 21:41:57 +02:00
Patrick Pelissier
37cef298c6
Update format
2020-05-29 21:49:03 +02:00
Patrick Pelissier
88a4835025
Fix issue when defining algorithm with same prefix than container
2020-05-17 12:11:04 +02:00
Patrick Pelissier
d1ae26f0fd
* Add control than the type and the oplist are compatible
2020-05-17 10:27:30 +02:00
Patrick Pelissier
c531f805b0
Define _reduce only if SET method is properly set
2020-05-15 14:31:47 +02:00
Patrick Pelissier
055e74d350
Add more check for valid oplists before expanding further
2020-05-09 16:10:56 +02:00
Patrick Pelissier
1200f30695
* Add more Function Object support in algorithm
...
* Fix bug of selection sort
2020-05-08 11:35:22 +02:00
Patrick Pelissier
4f44b3f60b
Add CMP callback
2020-05-07 22:13:36 +02:00
Patrick Pelissier
b196fcc3c0
Rename _cmp_cb_t into _eq_cb_t
2020-05-07 22:10:53 +02:00
Patrick Pelissier
395f1af19e
Implement more function object algorithm
2020-05-07 22:09:07 +02:00
Patrick Pelissier
563ffb4275
Add first support for function object for certain algos (WIP)
2020-05-05 23:34:34 +02:00
Patrick Pelissier
0ac6a53fe9
Define callback types
2020-05-05 22:57:19 +02:00
Patrick Pelissier
4431e9f9ae
Factorization / Split of the definition of the algorithm
2020-05-05 22:40:03 +02:00
Patrick Pelissier
a0a32d8c6c
ALGO_REDUCE accept dest with different type than the container
2020-04-20 23:49:16 +02:00
Patrick Pelissier
5b8750ee2a
* Add support for product in ALGO_REDUCE
2020-04-10 08:28:16 +02:00
Patrick Pelissier
843ddac3dd
Proper prefix internal variables of macros by '_'
2020-04-01 23:40:41 +02:00
Patrick Pelissier
4e67823593
Add support for SET_KEY only containers for ALGO_EXTRACT
2020-04-01 23:27:20 +02:00
Patrick Pelissier
d77a235b2a
Add macro ALGO_TRANSFORM
2020-03-28 17:41:04 +01:00
Patrick Pelissier
548cd84a7f
Add _transform method for algorithm.
2020-03-28 13:33:43 +01:00
Patrick Pelissier
068d023917
Factorize in m-core.h the pattern recognication.
2020-03-28 11:36:51 +01:00
Patrick Pelissier
86b6ad54d5
Rename filln, filla, fillan into fill_n, fill_a, fill_an (same name as C++)
2020-03-28 11:10:02 +01:00
Patrick Pelissier
c3a5306266
Add function _fill, _filln, _filla, _fillan as algorithms
2020-03-26 21:48:46 +01:00
Patrick Pelissier
4f7b0b9455
Happy new year 2020
2020-01-04 15:41:06 +01:00
Patrick Pelissier
a9fc259420
ALGO_EXTRACT func argument is now optional
2019-12-30 14:31:21 +01:00
Patrick Pelissier
6f603b52df
Update comments
2019-12-30 14:11:41 +01:00
Patrick Pelissier
edb4ccf63e
Add algo functions _remove_val & _remove_if
2019-05-07 16:35:39 +02:00
Patrick Pelissier
7eb26a29f1
Reduce the number of mandatory operators for algorithm:
...
* EQUAL
* INIT
are not optional (methods depending on them won't be generated
if the operators are not defined).
2019-03-24 08:37:57 +01:00
Patrick Pelissier
dc803f23bb
Add missing const
2019-03-09 16:38:44 +01:00
Patrick Pelissier
8b3a4a802c
Happy new year!
2019-01-02 18:12:07 +01:00
Patrick Pelissier
8f67ca339b
Rename internal macros.
2018-09-13 22:59:38 +02:00
Patrick Pelissier
1679b7b5cf
Mark ALGO_INIT_VA & ALGO_LET_INIT_VA as obsolete:
...
the M_LET macro supports their feature in a more generic way.
2018-09-10 22:57:52 +02:00
Patrick Pelissier
757049543d
Port to M_CALL infrastructure the M-ALGO
2018-09-10 22:50:26 +02:00
Patrick Pelissier
c506443ed0
Add comment about ALGO_EXTRACT
2018-08-08 22:54:56 +02:00
Patrick Pelissier
5f42f26587
Fix warning about shadowed variables
2018-08-08 22:49:49 +02:00
Patrick Pelissier
ede57a20be
Add ALGO ALGO_INSERT that allows inserting a container into another one.
2018-08-08 22:44:17 +02:00
Patrick Pelissier
92d7009804
Fis issue if given type is a T * = TYPE:
...
token pasting created const T *, which is not the same as
const TYPE = T * const
2018-08-03 20:35:37 +02:00
Patrick Pelissier
79158dabbc
Rename _map into _for_each.
2018-07-22 21:32:46 +02:00
Patrick Pelissier
4aca0664ef
Add methods _find_again, _find_again_if, _mismatch_again and _mismatch_again_if
2018-07-15 23:06:22 +02:00
Patrick Pelissier
6721a86768
Add method _mismatch and _mismatch_if
2018-07-15 22:34:29 +02:00