145 Commits

Author SHA1 Message Date
Peter Dimov
82104cd55e constexpr the copy/move constructors; change copy/move assign to not require constexpr lambdas 2017-06-09 17:24:23 +03:00
Peter Dimov
ca0e58f3fc is_trivially_copyable doesn't exist on 4.9 either 2017-06-09 04:49:44 +03:00
Peter Dimov
3a198b5f2b Use is_trivially_copyable instead of has_trivial_copy_* 2017-06-09 04:31:59 +03:00
Peter Dimov
3c18ded3aa Check is_move_constructible, is_move_assignable 2017-06-09 04:17:06 +03:00
Peter Dimov
7c00db0600 has_trivial_move doesn't exist either in libstd++ pre-5 2017-06-09 03:44:02 +03:00
Peter Dimov
893cd7c1e5 Add workaround for libstdc++ < 5 2017-06-09 03:22:31 +03:00
Peter Dimov
613d411396 Fix constexpr emplace on clang and msvc-14.1 2017-06-09 02:27:02 +03:00
Peter Dimov
0997734e5c Make emplace constexpr 2017-06-09 02:05:34 +03:00
Peter Dimov
e68ff1f014 Fix copy/paste mistake 2017-06-04 13:55:42 +03:00
Peter Dimov
d88ba98e92 Throw bad_expected_access if throw_on_unexpected returns 2017-06-03 15:51:28 +03:00
Peter Dimov
02ecef4fcb Add const on remap_errors() 2017-06-03 14:58:44 +03:00
Peter Dimov
369781b623 Add test/variant_subset 2017-06-03 00:27:52 +03:00
Peter Dimov
8765ee1983 Add expected::operator>> as an alias for .then 2017-06-03 00:12:01 +03:00
Peter Dimov
e347ecbff1 Simplify bad_expected_access<E> a bit 2017-06-02 23:28:51 +03:00
Peter Dimov
bdd449ae6a get_if should return 0 when passed 0 2017-06-02 22:11:29 +03:00
Peter Dimov
c867329bb8 Rename mp_for_index to mp_with_index in expected.hpp, too 2017-06-02 18:27:08 +03:00
Peter Dimov
9b3121fac0 Rename mp_for_index to mp_with_index 2017-06-02 18:25:11 +03:00
Peter Dimov
0b387f5116 Add .then 2017-06-02 18:11:43 +03:00
Peter Dimov
3d2a3cb3eb Redesign bad_expected_access 2017-06-02 15:59:43 +03:00
Peter Dimov
d55db1dbc6 Replace use of get<> with ._get_impl for better codegen 2017-06-02 06:02:50 +03:00
Peter Dimov
c99bf2205c Move index() into variant_base to avoid needless ix_ >= 0 checks when single buffered 2017-06-02 05:41:13 +03:00
Peter Dimov
2a6c157fcc Add preliminary expected<T, E...> implementation 2017-06-02 05:15:51 +03:00
Peter Dimov
f4f949fc2f Add converting constructors, subset<U...>() 2017-06-02 05:14:40 +03:00
Peter Dimov
3a7078cdfb Add preliminary outcome.hpp 2017-06-01 21:47:40 +03:00
Peter Dimov
ca14504675 Add preliminary result.hpp 2017-06-01 21:22:19 +03:00
Peter Dimov
6a45fa56ad Fix copyright 2017-06-01 21:18:57 +03:00
Peter Dimov
77e8c46074 Fix return type of visit() to properly take cv& into account 2017-06-01 19:24:50 +03:00
Peter Dimov
c891c8e205 Do not include boost/mp11.hpp if already included, to allow use on Compiler Explorer 2017-06-01 17:27:17 +03:00
Peter Dimov
db565aaa73 Implement visit 2017-06-01 01:48:38 +03:00
Peter Dimov
f74da6d382 Rename mp_for_index_c to mp_for_index 2017-05-31 23:18:37 +03:00
Peter Dimov
ef849a0feb Use mp_for_index_c 2017-05-31 20:29:57 +03:00
Peter Dimov
7d25e131be Add SFINAE conditions 2017-05-31 07:42:45 +03:00
Peter Dimov
abb7b551cc Extend g++5 workaround for consistency to rvalue overloads 2017-05-31 05:46:34 +03:00
Peter Dimov
ab0d867411 Another attempt at g+ 5 fix 2017-05-31 05:36:35 +03:00
Peter Dimov
08bfd69387 Single buffer when a type is nothrow default constructible 2017-05-31 04:59:59 +03:00
Peter Dimov
4f241bd8b0 Try a fix for g++ 5 2017-05-31 04:55:30 +03:00
Peter Dimov
755bc60c2b Add initializer list support 2017-05-31 04:19:40 +03:00
Peter Dimov
4bb5cdab60 Add test/variant_swap 2017-05-31 03:36:08 +03:00
Peter Dimov
e0e48d365c Add test/variant_copy_assign, variant_move_assign 2017-05-30 18:00:07 +03:00
Peter Dimov
2357f4d2f4 Add test/variant_in_place_index_construct(_cx) 2017-05-30 16:57:48 +03:00
Peter Dimov
5aa16c5bf7 Add test/variant_copy_construct, variant_move_construct 2017-05-30 03:45:55 +03:00
Peter Dimov
07be071794 Add test/get_by_type(_cx).cpp, get_by_index_cx.cpp 2017-05-30 02:08:31 +03:00
Peter Dimov
781977a237 Add test/get_by_index.cpp 2017-05-29 21:38:04 +03:00
Peter Dimov
abd7a5ffe3 Remove clang-3.5; move clang-4.0 to trusty; include <initializer_list> 2017-05-29 17:58:13 +03:00
Peter Dimov
fc2aa96acb Initial commit 2017-05-29 17:31:05 +03:00