Andrey Semashev
24d29e5865
Fix for clang, when adapted type is convertible from other types.
...
The problem was with copy/move constructors of boost::optional<T>, which invoked
optional_base<T> constructors with a single argument. Since optional_base has
copy/move constructors along with initializing constructors taking a single
argument, the latter may be considered by the compiler for viability. While
doing so, the compiler may instantiate the template constructor of T with
an argument of optional_base<T>, which in turn may fail if the constructor
attempts to inspect the type of its argument (e.g. to constrain the set of
acceptable types). Specifically, this happens with clang in C++03 mode,
when boost::multiprecision::number is wrapped in boost::optional and
a copy constructor of boost::optional is invoked.
This commit fixes the problem by destinguishing copy/move constructors of
optional_base from initializing constructors with an additional tag argument.
2018-11-04 17:35:10 +03:00
Nikita Kniazev
bebc606a4c
Remove deprecation mark from reset()
...
The `std::optional` has `reset()` [optional.mod] and it is not deprecated.
2018-10-23 22:34:10 +02:00
Nikita Kniazev
350ebab88a
Workaround GCC 8-9 regression
...
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87531
2018-10-05 18:47:16 +03:00
Peter Dimov
c52280bb78
Remove dependency on MPL
2018-09-12 20:02:47 +03:00
Andrzej Krzemienski
228b20df82
fixed old implementation (issue #57 )
2018-07-12 00:30:47 +02:00
Andrzej Krzemienski
71d797b9ee
added implementation and tests of flat_map()
2018-06-28 23:30:47 +02:00
Andrzej Krzemienski
701afd43a4
fixed strange verisons of libstdc++
2018-06-28 21:17:07 +02:00
Andrzej Krzemienski
d13623884a
hopefully fixed the libstdc++ 4.9 problem (thanks Jonathan)
2018-06-28 02:10:57 +02:00
Andrzej Krzemienski
0169460194
fixed tests and maybe std::is_trivially_default_constructible
2018-06-25 22:50:00 +02:00
Andrzej Krzemienski
e47a017009
added o.map()
2018-06-23 18:27:14 +02:00
Andrzej Krzemienski
5182f7f30f
Added has_value()
2018-03-24 00:04:15 +01:00
akrzemi1
76ff82d191
Silenced warning -Wzero-as-null-pointer-constant
2018-02-15 22:51:08 +01:00
Peter Klotz
a5aaf4d8d0
Fixed recurring typo
2018-02-11 21:03:54 +01:00
petamas
e230bd83c6
Fix compilation of template parameter with member enum T on VS2015
...
Issue: https://github.com/boostorg/optional/issues/46
2018-01-03 10:46:31 +01:00
Andrzej Krzemienski
fb54ee1741
Fixed spelling mistake in macros
2017-11-07 23:35:01 +01:00
Andrzej Krzemienski
f9fdf42a17
fix for the previous partial commit
2017-11-07 23:34:52 +01:00
Andrzej Krzemienski
7541076cf1
fixed defaulted moves on older compilers
2017-11-07 23:34:41 +01:00
Andrzej Krzemienski
40f7c97292
Fixed -Wmaybe-uninitialized
2017-11-07 23:34:37 +01:00
Andrzej Krzemienski
06dea2cb9b
Reverted specialization for trivial types
...
It caused too many problems. I left only specialiation for scalar types.
I will need to devise clever type traits for reconizing trivial types with working constructor.
2017-11-07 23:34:34 +01:00
Andrzej Krzemieński
6e10173a44
Fixed silly && bug
2017-11-07 23:34:28 +01:00
Andrzej Krzemienski
69bf75ae6d
Fix trivially-constructible bug with deleted functions
2017-11-07 23:34:26 +01:00
Andrzej Krzemienski
9d0ddc4709
fixed regression on compilers w/o type trait support
2017-11-07 23:34:18 +01:00
Andrzej Krzemienski
a7f33f5d6f
more defensive checking for trivial types -- avoiding bugs
2017-11-07 23:34:15 +01:00
Andrzej Krzemienski
58f7c2f14a
fix bug with defaulted move in msvc 12.0
2017-11-07 23:34:12 +01:00
Andrzej Krzemienski
2d2c3c3f6f
trivially-copyable optional<T> for trivial T
2017-11-07 23:34:05 +01:00
Andrey Semashev
e95f9fc254
Convert tabs to spaces.
2017-11-07 23:34:02 +01:00
Andrey Semashev
7e1beb473c
Use BOOST_MAY_ALIAS from Boost.Config.
2017-11-07 23:33:59 +01:00
Andrzej Krzemienski
4fe57f57fa
Fix make_optional for rvalues
2017-11-07 23:33:54 +01:00
Daniel J. Hofmann
c695be11b5
Adds forwarding make_optional helpers, resolves #30
2017-11-07 23:32:27 +01:00
Andrzej Krzemienski
17826eae3b
more old compiler workarounds
2016-11-24 23:20:25 +01:00
Andrzej Krzemienski
d73b5110dd
corrected the compiler workarounds
2016-11-22 02:35:24 +01:00
Andrzej Krzemienski
b4907c2a51
old compiler workarounds for the previous two fixes
2016-11-20 23:42:41 +01:00
Andrzej Krzemienski
fafb3abb64
Implemented reset syntax: o = {}
2016-11-19 21:14:28 +01:00
Andrzej Krzemienski
7ea2ca6c40
Fix #12563
2016-11-19 14:57:40 +01:00
Andrzej Krzemienski
8d69e99e78
removed hack test, updated copyright
2016-11-06 01:49:53 +01:00
Andrzej Krzemienski
9bc1cc585c
small sfinae fix for in_place constructors
2016-11-02 22:28:20 +01:00
Andrzej Krzemieński
4e08f0dd41
Fixed build in C++03 compiler
2016-10-28 11:49:33 +02:00
Andrzej Krzemieński
9af24038bc
fixed initialization of in_place tags
2016-10-27 11:40:23 +02:00
Andrzej Krzemieński
92d40c7108
Fixed in_place_init tags
2016-10-27 09:21:24 +02:00
Andrzej Krzemienski
eb9ea1f72d
added in_place constructors
2016-10-27 01:08:17 +02:00
Tolga HOŞGÖR
9f8823aebf
Fixed #24
2016-09-27 09:51:09 +03:00
Andrzej Krzemienski
99efe72052
is_const_interal -> is_const_integral
2016-09-06 21:59:54 +02:00
Andrzej Krzemienski
f9324a8790
attempt fix at gcc 5.2 c++03
2016-09-02 01:42:26 +02:00
Benjamin Buch
088e2e3051
Suppress a 'unused parameter' warning in optional_reference_spec.hpp
2016-05-31 01:00:20 +02:00
Andrzej Krzemieński
5d5d1f46ba
Merge pull request #19 from tiwoc/fix-include-config
...
Fix build issues when optional_fwd.hpp is used before including boost/config.hpp
2016-05-20 08:27:39 +02:00
Andrzej Krzemienski
08076e3964
fixed optional<optional<T>&> case
2016-05-17 00:54:09 +02:00
Daniel Seither
844ca6a0d5
Fix build issues when optional_fwd.hpp is used before including boost/config.hpp
...
Fixes https://svn.boost.org/trac/boost/ticket/12179
2016-05-14 10:34:13 +02:00
Andrzej Krzemienski
865d94a8d8
fixed interop between opt refs and opt vals
2016-03-06 19:08:25 +01:00
Andrzej Krzemienski
0831788c86
Removed enable_if factory on SUNPRO compilers
2016-03-05 23:22:29 +01:00
Andrzej Krzemienski
9118518516
more extensive speculative fix
2016-02-20 16:36:48 +01:00