2d2c3c3f6f
trivially-copyable optional<T> for trivial T
2017-11-07 23:34:05 +01:00
e95f9fc254
Convert tabs to spaces.
2017-11-07 23:34:02 +01:00
4fe57f57fa
Fix make_optional for rvalues
2017-11-07 23:33:54 +01:00
c695be11b5
Adds forwarding make_optional helpers, resolves #30
2017-11-07 23:32:27 +01:00
d73b5110dd
corrected the compiler workarounds
2016-11-22 02:35:24 +01:00
b4907c2a51
old compiler workarounds for the previous two fixes
2016-11-20 23:42:41 +01:00
fafb3abb64
Implemented reset syntax: o = {}
2016-11-19 21:14:28 +01:00
7ea2ca6c40
Fix #12563
2016-11-19 14:57:40 +01:00
8d69e99e78
removed hack test, updated copyright
2016-11-06 01:49:53 +01:00
9bc1cc585c
small sfinae fix for in_place constructors
2016-11-02 22:28:20 +01:00
4e08f0dd41
Fixed build in C++03 compiler
2016-10-28 11:49:33 +02:00
9af24038bc
fixed initialization of in_place tags
2016-10-27 11:40:23 +02:00
92d40c7108
Fixed in_place_init tags
2016-10-27 09:21:24 +02:00
eb9ea1f72d
added in_place constructors
2016-10-27 01:08:17 +02:00
0831788c86
Removed enable_if factory on SUNPRO compilers
2016-03-05 23:22:29 +01:00
9118518516
more extensive speculative fix
2016-02-20 16:36:48 +01:00
c0084a0451
extended speculative fix to more MSVC compilers
2016-02-20 16:11:16 +01:00
3b58b0f4da
speculative fix for msvc 8.0 test failure
2016-02-20 11:34:18 +01:00
f6e09fbf9c
value constructor is sfinae-friendly
2016-02-19 18:41:42 +01:00
5ffa3fd2f6
turned a complicatedcondition in enable_if into a metafun
2016-02-19 01:51:08 +01:00
1671966380
fixed preprocessor typeo
2016-02-18 15:02:07 +01:00
b38b64cee9
extended destructor workaround to MSVC 10.0
2016-02-18 12:34:08 +01:00
7ae2db7312
Conditionally removing optional destructor
2016-02-18 11:00:24 +01:00
630fbb7973
re-added explicit optional destructor
...
If it is not there T::~T() is never called in buggy msvc-8.0.
2016-02-18 09:16:59 +01:00
c653372524
cleanup after separating references
2016-02-18 00:24:59 +01:00
87ef503606
Removed empty optional destructor
2016-02-17 16:39:07 +01:00
b5b8414c06
Primary template optional<> does not handle references
2016-02-13 00:46:41 +01:00
cf4b2e8b16
specialization for optional ref - preliminary
2015-10-05 16:54:05 +02:00
b43ce289c2
Fixed no-return warning
2015-06-03 18:22:41 +02:00
4e7405a233
Sane swap() for rvalue-aware compilers
...
When we detect that compiler supports rvalue references, we implement swap() in term of moves (as intuition suggests).
Otherwise we fall back to old tricks with default constructor+swap
2015-05-18 16:51:12 +02:00
8ca74951b0
Added emplace(void) for older compilers
2015-05-15 18:10:19 +02:00
1d7fe0e770
Removed unused parameters.
2015-04-21 14:37:41 -07:00
15d9fcdbd1
added missing overload for value_or fo non-C++11 compilers
2015-03-10 07:14:36 +01:00
0a8a798c3a
Fixed Trac #10839
2015-03-09 11:50:10 +01:00
59266a2630
More restrictive assignment from optional<U>
2015-03-06 19:20:45 +01:00
f229257f30
You can now manually disable move semantics.
...
This may be useful in MSVC to work around a bug described in Trac #10399
2015-01-21 15:03:17 +01:00
726b227aa9
operator<< improvements
2015-01-21 00:10:51 +01:00
fea4882f24
rvalue ref overloads do not return by value
2014-07-10 13:49:36 +02:00
18b8c4bb18
Catching up with N4078
2014-06-28 00:31:36 +02:00
4cbb67e505
Cleaner handling of explicit U to T conversions
2014-06-20 11:38:57 +02:00
d70114b3dc
Added func value_or_eval()
2014-06-18 16:42:48 +02:00
0a2a8957fa
bug fix: comma in BOOST_STATIC_ASSERT
2014-06-15 21:51:07 +02:00
31c9119266
value_or() requires that U is convertible to T
...
Due to Vladimir Batov.
2014-06-14 22:49:37 +02:00
8fc2901fad
explicit operator bool becomes noexcept
2014-06-14 00:46:24 +02:00
fdc98d17ca
Added limited emplace() for older compilers
2014-06-06 23:24:43 +02:00
3dd614fd91
Reorganized docs. Minor code fix wrt opt refs
2014-06-04 18:13:06 +02:00
f99618f09b
Added ref-qualifiers to some accessors
2014-06-03 23:07:19 +02:00
2e583aaf30
Fixed code, updated docs, added emplace()
2014-06-03 17:36:18 +02:00
3984c9f9a1
Added function value_or()
2014-05-23 16:38:42 +02:00
75271b73a8
Member fun value() that throws on uninitialized
2014-05-22 23:32:49 +02:00