Peter Dimov
|
3d17ab059f
|
Do not include mpl.hpp in mp11.hpp
|
2017-07-20 19:16:41 +03:00 |
|
Peter Dimov
|
695e9234f9
|
Add MPL support
|
2017-07-18 16:37:31 +03:00 |
|
Peter Dimov
|
34946d2ae2
|
Add mp_is_map
|
2017-07-17 20:14:43 +03:00 |
|
Peter Dimov
|
50d35a2964
|
Add mp_map_keys
|
2017-07-17 19:46:51 +03:00 |
|
Peter Dimov
|
27d0d547ee
|
Add mp_is_set
|
2017-07-17 19:28:36 +03:00 |
|
Peter Dimov
|
d5e39913c8
|
Add mp_quote_trait
|
2017-06-26 16:07:23 +03:00 |
|
Peter Dimov
|
464eee9596
|
Make primary templates in list.hpp empty instead of undefined, add error comments
|
2017-06-17 19:33:16 +03:00 |
|
Peter Dimov
|
d9c4308d9d
|
Add list_size_mismatch which produces a better error message from mp_transform
|
2017-06-17 19:14:47 +03:00 |
|
Peter Dimov
|
e926c4ce62
|
Change mp_identity_t to be non-transparent, for consistency
|
2017-06-10 04:13:39 +03:00 |
|
Peter Dimov
|
cae6f966dc
|
Rename make_from_tuple to construct_from_tuple
|
2017-06-08 19:22:53 +03:00 |
|
Peter Dimov
|
08777edbc1
|
Add make_from_tuple
|
2017-06-08 17:42:50 +03:00 |
|
Peter Dimov
|
359ae25630
|
Add tuple_apply
|
2017-06-08 17:19:28 +03:00 |
|
Peter Dimov
|
97720ed72d
|
Rename tuple_for_each.hpp to tuple.hpp
|
2017-06-08 16:35:55 +03:00 |
|
Peter Dimov
|
592a4706a6
|
Update mp11_single.hpp
|
2017-06-02 19:25:52 +03:00 |
|
Peter Dimov
|
cde9259b1a
|
Rename mp_for_index to mp_with_index
|
2017-06-02 18:20:37 +03:00 |
|
Peter Dimov
|
7f9f4c31e2
|
Avoid unused argument warning
|
2017-06-01 19:33:32 +03:00 |
|
Peter Dimov
|
0e099c4398
|
Add mp11_single.hpp
|
2017-06-01 17:17:31 +03:00 |
|
Peter Dimov
|
b8bbd279b2
|
Make mp_for_each constexpr under C++14
|
2017-05-31 23:44:24 +03:00 |
|
Peter Dimov
|
3cce995877
|
Rename mp_for_index_c to mp_for_index
|
2017-05-31 23:18:08 +03:00 |
|
Peter Dimov
|
1bd4b670ce
|
Avoid control reaches end of non-void function warnings
|
2017-05-31 20:16:41 +03:00 |
|
Peter Dimov
|
e6c28a0848
|
Add mp_for_index
|
2017-05-31 19:56:18 +03:00 |
|
Peter Dimov
|
d78cf71a97
|
Revert previous; disable problematic test on 4.7/4.8 instead
|
2017-05-31 09:09:05 +03:00 |
|
Peter Dimov
|
5733185780
|
Try a g++ 4.7/4.8 workaround
|
2017-05-31 08:40:41 +03:00 |
|
Peter Dimov
|
a47c6e3c57
|
g++7.1 doesn't quite like mp_all, too; and 5 and earlier also fail in a different way
|
2017-05-31 07:57:02 +03:00 |
|
Peter Dimov
|
a768587c7d
|
g++6 doesn't like mp_any either
|
2017-05-31 07:22:31 +03:00 |
|
Peter Dimov
|
9a69b1213c
|
g++ 6 has problems with mp_and
|
2017-05-31 07:08:56 +03:00 |
|
Peter Dimov
|
f6d92069a9
|
Make mp_at SFINAE-friendly
|
2017-05-29 05:56:55 +03:00 |
|
Peter Dimov
|
c7923ca041
|
Change back mp_for_each to not use mp_identity
|
2017-05-29 03:04:12 +03:00 |
|
Peter Dimov
|
edcff6fa6f
|
Add test for mp_transform_q
|
2017-05-25 21:51:40 +03:00 |
|
Peter Dimov
|
6db4019341
|
Add mp_transform_if_q
|
2017-05-25 21:31:03 +03:00 |
|
Peter Dimov
|
0e0d7fae4e
|
Enable fold expressions on g++
|
2017-05-24 06:16:17 +03:00 |
|
Peter Dimov
|
e81ce26bf9
|
Use fold expressions in mp_all, mp_any
|
2017-05-24 05:59:15 +03:00 |
|
Peter Dimov
|
fc562c7421
|
Fix mp_all on g++ 4.7
|
2017-05-24 04:59:15 +03:00 |
|
Peter Dimov
|
ecd77ab9fa
|
Make mp_all fail when ::value is invalid for some type
|
2017-05-24 04:27:36 +03:00 |
|
Peter Dimov
|
b306ab25aa
|
Do not use auto on g++ 4.7 in mp_plus
|
2017-05-24 03:47:24 +03:00 |
|
Peter Dimov
|
2bd7393365
|
Use fold expressions in mp_plus
|
2017-05-24 02:50:43 +03:00 |
|
Peter Dimov
|
3e40aacce5
|
Document mp_plus
|
2017-05-24 01:52:11 +03:00 |
|
Peter Dimov
|
6b1a2f6156
|
Revert mp_or; add mp_void; update documentation
|
2017-05-24 01:37:49 +03:00 |
|
Peter Dimov
|
07cac40f3d
|
Change mp_and/mp_or to a SFINAE-based implementation
|
2017-05-23 23:25:30 +03:00 |
|
Peter Dimov
|
29a771aa4e
|
Move integer_sequence and tuple_for_each into mp11
|
2017-05-23 20:24:37 +03:00 |
|
Peter Dimov
|
eac1bf28a5
|
Unextend mp_invoke g++ 4.x workaround
|
2017-05-19 16:22:41 +03:00 |
|
Peter Dimov
|
29c4b601b4
|
Extend msvc-12.0 mp_invoke workaround to g++ 4.x
|
2017-05-19 15:59:17 +03:00 |
|
Peter Dimov
|
7100d10c7e
|
Make mp_infoke SFINAE-friendly
|
2017-05-19 15:37:49 +03:00 |
|
Peter Dimov
|
1d1be2bbf4
|
Add mp_eval_if_q
|
2017-05-19 03:22:53 +03:00 |
|
Peter Dimov
|
3cc44323e9
|
Second try to fix g++ 4.7
|
2017-05-19 01:13:09 +03:00 |
|
Peter Dimov
|
ec9d43e7e9
|
Try to fix g++ 4.7
|
2017-05-19 01:00:56 +03:00 |
|
Peter Dimov
|
02385ac83d
|
SFINAE-fail mp_transform on lists of different sizes
|
2017-05-18 16:13:55 +03:00 |
|
Peter Dimov
|
611ea810bd
|
SFINAE-fail mp_eval_if when F<U...> is invalid
|
2017-05-18 15:22:05 +03:00 |
|
Peter Dimov
|
37bbb15375
|
Make the E parameter of mp_if optional
|
2017-05-18 14:59:46 +03:00 |
|
Peter Dimov
|
15e45290d0
|
Add mp_insert, mp_erase
|
2017-05-13 21:52:56 +03:00 |
|
Peter Dimov
|
647f669353
|
Add mp_product_q, update documentation
|
2017-05-13 21:07:54 +03:00 |
|
Peter Dimov
|
893d84fda2
|
Add mp_for_each
|
2017-05-13 00:10:50 +03:00 |
|
Peter Dimov
|
d97b21261f
|
Add tests for tuple_for_each and empty tuples
|
2017-05-12 23:37:37 +03:00 |
|
Peter Dimov
|
9fbf51bbcb
|
Remove bind_front functionality from mp_quote
|
2017-05-12 19:43:03 +03:00 |
|
Peter Dimov
|
543a0f755e
|
Add mp_apply_q
|
2017-05-12 19:21:27 +03:00 |
|
Peter Dimov
|
939a3b949d
|
Add mp_bind_q, mp_bind_front(_q), mp_bind_back(_q), mp_transform_q
|
2017-05-09 20:53:00 +03:00 |
|
Peter Dimov
|
4521eff93c
|
Cast the result of f() to void (avoid op,)
|
2017-05-08 18:59:19 +03:00 |
|
Peter Dimov
|
28c420edf7
|
Add mp_same.
|
2017-04-01 20:01:51 +03:00 |
|
Peter Dimov
|
b02e9fbacc
|
Add mp_bind.
|
2017-04-01 18:42:11 +03:00 |
|
Peter Dimov
|
c92d314009
|
Implement mp_transform_if in terms of mp_transform
|
2017-04-01 18:08:19 +03:00 |
|
Peter Dimov
|
fcbe835f4b
|
Add a variadic mp_transform implementation
|
2017-04-01 17:39:02 +03:00 |
|
Peter Dimov
|
e871f0c30c
|
Optimize mp_append.
|
2017-03-27 02:00:48 +03:00 |
|
Peter Dimov
|
3cd3a916a8
|
Use __type_pack_element in mp_at(_c)
|
2017-03-25 20:32:40 +02:00 |
|
Peter Dimov
|
3242fdb134
|
Use narrowing instead of static_assert in mp_take
|
2017-03-24 19:12:13 +02:00 |
|
Peter Dimov
|
c059b1ea3f
|
Use narrowing instead of static_assert in mp_repeat
|
2017-03-24 19:00:52 +02:00 |
|
Peter Dimov
|
946861bb63
|
Make mp_replace(_if) SFINAE-friendlier.
|
2017-03-24 18:47:55 +02:00 |
|
Peter Dimov
|
d3f4b099d2
|
Unroll mp_reverse_fold.
|
2017-03-24 18:10:07 +02:00 |
|
Peter Dimov
|
e488469e9a
|
Unroll mp_fold.
|
2017-03-24 17:21:38 +02:00 |
|
Peter Dimov
|
2bf9bad934
|
Unroll mp_reverse a bit more.
|
2017-03-24 16:55:06 +02:00 |
|
Peter Dimov
|
c1485d5d51
|
Improve mp_copy_if, mp_remove(_if), mp_partition
|
2017-03-24 15:22:10 +02:00 |
|
Peter Dimov
|
42b4561725
|
Add mp_apply as an alias for mp_rename
|
2017-03-24 14:26:31 +02:00 |
|
Peter Dimov
|
828dadb167
|
Unroll mp_append a bit.
|
2017-03-24 01:15:44 +02:00 |
|
Peter Dimov
|
848c2ff82c
|
Add fold expr implementations of mp_count, mp_count_if
|
2017-03-23 19:34:43 +02:00 |
|
Peter Dimov
|
72c9c49224
|
Unroll cx_plus a bit.
|
2017-03-23 19:22:42 +02:00 |
|
Peter Dimov
|
32938df318
|
Less clever, much faster, mp_take
|
2017-03-22 02:03:39 +02:00 |
|
Peter Dimov
|
321a54728f
|
Add indirection in mp_quote to enable expansions of T... into a fixed parameter list
|
2017-03-20 16:55:00 +02:00 |
|
Peter Dimov
|
71ba80d18a
|
Rename ::invoke to ::fn
|
2017-03-20 16:23:52 +02:00 |
|
Peter Dimov
|
7e8d618793
|
Add mp_replace_at(_c)
|
2017-03-18 20:20:31 +02:00 |
|
Peter Dimov
|
79f8c574f3
|
Add mp_replace_{front,first,second,third}
|
2017-03-18 19:58:38 +02:00 |
|
Peter Dimov
|
8e053269a8
|
Make mp_transform_if variadic.
|
2017-03-18 19:48:07 +02:00 |
|
Peter Dimov
|
e1edd90c21
|
Fix clang 3.9 -std=c++1z failures
|
2017-03-18 01:05:54 +02:00 |
|
Peter Dimov
|
946937b5ab
|
Rename Q::apply to Q::invoke, mp_unquote to mp_invoke.
|
2017-03-16 21:14:42 +02:00 |
|
Peter Dimov
|
e4f7488652
|
Change mp_and and mp_or to match std::conjuction and std::disjunction
|
2017-03-16 17:49:57 +02:00 |
|
Peter Dimov
|
7bbdaacda1
|
Remove mp_equal_to.
|
2017-03-16 17:35:47 +02:00 |
|
Peter Dimov
|
a231733c7e
|
Move everything to namespace mp11
|
2017-03-15 21:23:15 +02:00 |
|
Peter Dimov
|
adaa60dbc2
|
Rename mp_find_index to mp_find
|
2017-03-15 20:03:56 +02:00 |
|
Peter Dimov
|
8d9e6f50dd
|
Add arguments to mp_quote, allowing partial application
|
2017-03-15 18:09:30 +02:00 |
|
Peter Dimov
|
5a4fb7f832
|
Fix function application in mp_map_update
|
2017-03-14 22:40:47 +02:00 |
|
Peter Dimov
|
6fb4cee7b2
|
Add mp_transform_if, mp_map_update
|
2017-03-14 16:32:17 +02:00 |
|
Peter Dimov
|
c054b2b2fe
|
Add mp_map_erase.
|
2017-03-14 02:56:32 +02:00 |
|
Peter Dimov
|
586392ca51
|
VC++2017 still needs the workarounds.
|
2017-03-14 00:35:19 +02:00 |
|
Peter Dimov
|
42405ac701
|
Add mp_map_replace.
|
2016-11-17 03:38:24 +02:00 |
|
Peter Dimov
|
4a7008562f
|
Add mp_map_insert.
|
2016-11-17 02:51:12 +02:00 |
|
Peter Dimov
|
9735300f85
|
Add mp_map_find.
|
2016-11-17 02:01:50 +02:00 |
|
Peter Dimov
|
7a0f4001e7
|
Add mp_all, mp_and, mp_any, mp_or; move mp_not to integral.hpp.
|
2016-11-16 21:24:13 +02:00 |
|
Peter Dimov
|
cc3d54a857
|
Do not use function.hpp in algorithm.hpp.
|
2016-11-16 19:55:35 +02:00 |
|
Peter Dimov
|
29d030ac59
|
Add mp_all_of, mp_any_of, mp_none_of.
|
2016-11-16 04:19:37 +02:00 |
|
Peter Dimov
|
37f088a5bc
|
Boost.Config no longer defines BOOST_NO_CXX11_CONSTEXPR for VS2015u3
|
2016-10-23 18:16:55 +03:00 |
|
Peter Dimov
|
6af4bbc113
|
Add mp_quote, mp_unquote.
|
2015-07-26 17:55:05 +03:00 |
|
Peter Dimov
|
e51ed6cf3d
|
Remove mp_defer_if_valid; add mp_identity_t.
|
2015-07-26 17:43:00 +03:00 |
|
Peter Dimov
|
bd9e5f9c41
|
Add some algorithm names to be implemented.
|
2015-07-24 13:54:30 +03:00 |
|
Peter Dimov
|
e6f83a0d33
|
Add mp_unique.
|
2015-07-24 13:45:08 +03:00 |
|
Peter Dimov
|
26575249ff
|
Add mp_set_contains, mp_set_push_back, mp_set_push_front.
|
2015-07-24 13:19:17 +03:00 |
|
Peter Dimov
|
5de3bf8810
|
Add mp_fold, mp_reverse_fold.
|
2015-07-24 02:11:40 +03:00 |
|
Peter Dimov
|
67ef9ab3fb
|
Add mp_remove, mp_reverse.
|
2015-07-24 01:17:16 +03:00 |
|
Peter Dimov
|
b5d9b95709
|
Extend msvc-12.0 workarounds to msvc-14.0 as needed.
|
2015-07-23 18:35:25 +03:00 |
|
Peter Dimov
|
a2dccfd6ae
|
Add skeleton headers for things not yet implemented.
|
2015-07-16 18:12:06 +03:00 |
|
Peter Dimov
|
61b897e857
|
Add mp_valid, mp_defer, mp_defer_if_valid.
|
2015-07-16 00:40:40 +03:00 |
|
Peter Dimov
|
dcd8d41ffc
|
Move implementation details to namespace detail.
|
2015-07-15 23:38:33 +03:00 |
|
Peter Dimov
|
c9d1562cee
|
Add mp_find, mp_find_if.
|
2015-07-15 18:11:16 +03:00 |
|
Peter Dimov
|
f1b097eb06
|
Add mp_find_index_if.
|
2015-07-15 17:30:07 +03:00 |
|
Peter Dimov
|
856ae3dc6c
|
Add mp_find_index.
|
2015-07-15 17:14:00 +03:00 |
|
Peter Dimov
|
baaead6860
|
Add mp_copy_if, mp_remove_if, mp_partition, mp_sort.
|
2015-06-24 16:05:47 +03:00 |
|
Peter Dimov
|
05ab3e7a42
|
Add tuple_for_each.
|
2015-06-24 14:57:32 +03:00 |
|
Peter Dimov
|
4a33810f9b
|
Add mp_replace, mp_replace_if.
|
2015-06-23 16:26:56 +03:00 |
|
Peter Dimov
|
4094f2f73f
|
Add mp_iota, mp_at, mp_take.
|
2015-06-22 03:37:15 +03:00 |
|
Peter Dimov
|
8bf6feb206
|
Add mp_drop.
|
2015-06-22 02:42:37 +03:00 |
|
Peter Dimov
|
cf49d00e45
|
Add integer_sequence.hpp.
|
2015-06-22 02:23:20 +03:00 |
|
Peter Dimov
|
d5f6ca8eb6
|
Add mp_product.
|
2015-06-22 00:46:24 +03:00 |
|
Peter Dimov
|
138e4de0a8
|
Add tests for mp_count, mp_count_if.
|
2015-06-22 00:06:50 +03:00 |
|
Peter Dimov
|
b4c3f29917
|
Move algorithms to algorithm.hpp.
|
2015-06-21 20:47:04 +03:00 |
|
Peter Dimov
|
686e398e56
|
Initial commit.
|
2015-06-21 19:53:23 +03:00 |
|