Antony Polukhin
ea73f3fb81
Drop some of the new warning suppressions, because they are too global (and some day may hide warnings for just-added issues)
2017-09-26 21:42:01 +03:00
Antony Polukhin
18bf0a18f3
Merge remote-tracking branch 'danielae/feature/qoi-warning' into develop
2017-09-26 21:19:39 +03:00
Marcel Raad
5e8814db76
Fix warning in warning suppression code
...
MSVC complained that this expression had no effect. Cast to void to
silence the warning.
2017-07-13 16:17:25 +02:00
Mike Maximoff
a904c0ebbc
make_variant_over does not revert type sequence. Added tests using variant.which().
2017-07-06 12:38:34 +03:00
very-cool-name
b2339c4c8d
Merge branch 'develop' into fix_joint_view
2017-07-04 21:02:16 +03:00
Mike Maximoff
8bf53ce9dd
Variadic templates make_variant_over still needs copying t work properly. Removed specialization.
2017-07-04 18:35:35 +03:00
Mike Maximoff
1adb0b7f3a
Fix works with mpl::list instead of mpl::vector
2017-07-04 17:44:11 +03:00
Daniela Engert
6c2c2fd506
Silence msvc compiler warnings about constant conditional expressions, returning the adress of local variables, and unused formal parameters.
...
Signed-off-by: Daniela Engert <dani@ngrt.de>
2017-06-08 19:10:43 +02:00
Albert Sverdlov
f62f657d4e
Fix tests; Fix copyright; Remove unnecessary mpl::not
2017-05-29 18:42:25 +03:00
Albert Sverdlov
1cc3765061
Handle get<U&>() case; Add tests
2017-05-26 02:54:28 +03:00
Albert Sverdlov
5c3bd61de8
Add rvalue get<>
2017-05-23 17:07:26 +03:00
Adam Badura
76b592ae1f
Solution for ticket 13037 ( https://svn.boost.org/trac/boost/ticket/13037 ).
...
Missing include of <boost/type_traits/is_const.hpp> added in
<boost/variant/polymorphic_get.hpp>.
2017-05-19 08:50:09 +02:00
Mike Maximoff
f015b13890
More generic solution to support more typed of sequences and variadic template solution to speed up compilation
2017-03-19 22:40:14 +03:00
Mike Maximoff
bf0ab5ff84
unpack types from mpl::joint_view for make_variant_over function (trac #8554 )
2017-03-15 21:16:47 +03:00
Antony Polukhin
fc7a665272
Make polymorphic_*get work as *get in undocumented border cases and fix tests (trac 11950)
2017-02-02 22:19:37 +03:00
Antony Polukhin
82f0ef1c1a
Fix issue: recursive_wrapper is not nothrow move constructible
2017-01-22 12:29:58 +03:00
Antony Polukhin
90464a57f2
Revert variadic templates for MSVC (it still has issues)
2017-01-19 01:26:46 +03:00
Antony Polukhin
0e489993d3
Enabling variadic templates for MSVC2015Upade1 - typo fix again (trac 12236)
2017-01-19 01:07:47 +03:00
Antony Polukhin
bc01e92c25
Enabling variadic templates for MSVC2015Upade1 - typo fix (trac 12236)
2017-01-19 00:39:23 +03:00
Antony Polukhin
ce1ae2d2d4
Enabling variadic templates for MSVC2015Upade1 (trac 12236)
2017-01-18 22:46:53 +03:00
Adam Wulkiewicz
ef7012b359
Add missing space between > > in is_nothrow_move_constructible specialization.
2017-01-14 03:05:01 +01:00
Mike Maximoff
ec27e4deb7
Fix gcc 6 fail, when it tries to determine whether recursive_wrapper is_nothrow_move_constructible (trac #12680 )
2017-01-12 14:18:49 +03:00
Mike Maximoff
3aacf56026
Fixed forbidden construction of variant from recursive_variant_ (trac #12508 , #12645 )
2016-12-20 13:57:08 +03:00
Antony Polukhin
fac387ae38
MMore fixes for noreturn
2016-09-06 08:57:43 +03:00
Antony Polukhin
9342505270
Use std::abort in forced_return() to leverage [[noreturn]] attribute, improve generated code and fix warnings
2016-09-03 11:55:03 +03:00
Nikita Kniazev
d5bb909689
Fixes "noreturn" does return
warning in release mode. #24 follow-up
2016-09-02 22:17:36 +03:00
Antony Polukhin
ecb67c03a9
Merge pull request #23 from Kojoley/suppress-weak-vtables-warning
...
Suppress weak vtables warning
2016-08-31 22:56:50 +04:00
Nikita Kniazev
9a1499ff91
Fixed missing noreturn
2016-08-31 21:37:05 +03:00
Nikita Kniazev
f46206a519
Suppress weak vtables warning
2016-08-31 19:41:58 +03:00
sms
d1213fc419
Use addressof in strict_get
2016-08-29 18:34:24 +03:00
amedama41
14be0f4555
Suppress implicit instantiation of MPL end iterator
2016-07-20 23:22:49 +09:00
Antony Polukhin
0dcec63b04
Another fix for incomplete types issue. is_variant_constructible_from attempts to construct not only recursive_wrapper<incomplete_type> from incomplete type, but also all the other types of variant from incomplete type. So boost::is_constructible<some_type, incomplete_type> was being called. Issue was fixed by leaving the recursive_wrapper for the right part of the boost::is_constructible and specializing the is_constructible for all the occurances of boost::recursive_wrapper.
2016-06-10 21:00:11 +03:00
Antony Polukhin
927280570a
Another attempt to workaround is_constructible<incomplete_type> behavior of clang+libc++
2016-06-09 23:00:41 +03:00
Antony Polukhin
5dab3b7ab9
Another attempt to workaround partial classes compilation with clang+libc++ (issue preventing boost::spirit::info from compilation)
2016-06-07 22:19:37 +03:00
Antony Polukhin
b84f8c2141
boost::recursive_wrapper related tests for non-complete types + include recursive_wrapper.hpp in variant.hpp to avoid breaking existing code
2016-06-04 11:01:40 +03:00
Antony Polukhin
f4b7d2e50c
Fixed double quotes in includes (trac 12057)
2016-06-02 22:15:33 +03:00
Antony Polukhin
397c2f14f8
Dropped BOOST_VARIANT_NO_REFERENCE_SUPPORT macro and dropped support for compilers without SFINAE (trac 12250)
2016-06-02 22:06:23 +03:00
Antony Polukhin
d23cdd3502
Fixed variant construction from classes derived from variant (trac 7120, trac 10278, trac 12155)
2016-05-30 20:11:22 +03:00
Antony Polukhin
70f9db1f35
Added missing include
2016-05-28 09:39:33 +03:00
Antony Polukhin
082732aad8
Fix comparisons when variant holds non-const reference (trac 11751)
2016-05-28 01:32:29 +03:00
Antony Polukhin
b3650685f9
Variant constructors and assignment operators now do not participate in overload resolutions if variant can not hold the input type (trac 5871, trac 11602)
2016-05-28 01:29:52 +03:00
Antony Polukhin
5bfb9dbed9
Fix noexcept for variant's move-assignment (trac #11696 )
2016-05-17 21:38:14 +03:00
Jakob Lykke Andersen
29db6e3e21
Fix compilation error due to missing include.
...
Add include for mpl::true_/false_.
2015-12-25 19:05:15 +01:00
Antony Polukhin
9807275140
Merge pull request #17 from jzmaddock/patch-4
...
Workaround for Oracle C++ compiler
2015-09-12 21:26:11 +04:00
jzmaddock
c3ee00a45e
Workaround for Oracle C++ compiler
2015-08-20 13:34:11 +01:00
jzmaddock
3404daa2fa
Remove files which use deprecated type_traits features, and aren't included by anything else anyway.
2015-07-25 11:58:55 +01:00
Antony Polukhin
aad58b5fe5
Fix issue with detection of result_type in has_result_type trait when result_type is a reference (refs track 11251,11285)
2015-06-17 21:25:11 +03:00
Antony Polukhin
34e2a9dec8
Relax compile time checks for all the 'get' functions and add more tests
2015-06-17 00:42:42 +03:00
Antony Polukhin
2b2cc6543c
Fix error with missing include, that was found by Maarten de Vries
2015-05-10 21:53:27 +03:00
Edward Diener
a9049106d7
Removed reliance on deprecated type_traits header
2015-04-02 12:26:22 -04:00
Antony Polukhin
b38a79116e
Merge branch 'develop' into alexhenrie-master
2015-01-31 18:03:23 +03:00
Alex Henrie
812f62ba79
Correct spelling of "suppress" and "ensure"
2015-01-30 15:25:40 -07:00
Antony Polukhin
1cec2c9e93
Disable variadic templates for MSVC-14 because of compiler implementation bugs
2015-01-27 16:11:40 +03:00
Antony Polukhin
e00c75c20d
Continue fixes, pointed out by Adam Wulkiewicz: removed unnecessary reference_content.hpp include, added missing static_assert.hpp include
2015-01-08 14:06:59 +03:00
Antony Polukhin
adfd722858
Merge pull request #9 from awulkiew/fix/get
...
Your fix seems right. `resursive_wrapper_fwd.hpp` is meant to be lightweight and included everywhere.
2015-01-08 13:58:13 +03:00
Adam Wulkiewicz
d05232522b
Add missing header in variant.hpp
...
because of the recent TypeTraits dependency drop in Move.
2015-01-04 15:19:55 +01:00
Adam Wulkiewicz
428433f497
Add missing headers in get.hpp and element_index.hpp
2014-12-31 16:44:47 +01:00
Antony Polukhin
1e1a81536c
Fix ambiguous cal to swap (refs trac #10882 )
2014-12-26 15:12:34 +03:00
Antony Polukhin
7c8b70cb9d
Include variant_fwd.hpp to avoid issues with undefined BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES
2014-12-17 10:43:51 +03:00
Antony Polukhin
6db01d6494
Fixed a bug with copy constructing a backup holder; changed some tests
2014-12-12 16:05:52 +03:00
Antony Polukhin
cbf4bbf1b1
Apply naming recomendations from mailing list discussion: unsafe=>relaxed, safe=>strict
2014-12-10 14:03:33 +03:00
Antony Polukhin
46250fa7d2
Make polymorphic_get U type compile time checked, add more tests and improve docs. Use strict as a default policy for polymorphic_get and get (as recomended at mailing list discussions)
2014-12-10 13:32:18 +03:00
Antony Polukhin
bcf506a296
Started the work on polymorphic_get to determinate sanity/safety of getting Base type. Fixed an issue with polymorphic_get<const final>. More tests, added safe_get and unsafe_get methods. Minor update of the docs
2014-12-09 20:50:18 +03:00
Antony Polukhin
1231f51501
Initial implementation of a metaprogramming function, that is capable of detecting element index in variant::types. Some tests to make sure that no old valid code was broken
2014-12-09 17:31:41 +03:00
Antony Polukhin
5cd1e3ee85
More tests and minor fixes for variadic multi visitation
2014-12-08 14:00:42 +03:00
Antony Polukhin
0231eefd43
More docs and tests for new variadic templates related features; tune apply_visitor(visitor) to use variadic templates and be suitable for visitors with any count of input opertors
2014-12-05 18:02:46 +03:00
Antony Polukhin
2770d7569e
Variadic templates based multivisitors now compile, result_type is determinated automatically if required
2014-12-05 14:51:58 +03:00
Antony Polukhin
6fff67381e
Merge branch 'develop' into variadic_multivisitors
2014-12-05 12:01:38 +03:00
Antony Polukhin
6db941f3dd
Added missing relational operators and their docs (refs trac #10811 and #8620 )
2014-12-03 20:42:10 +03:00
Antony Polukhin
ecdde80ea5
Some thoughts about multivisitors based on variadic templates
2014-12-03 19:25:47 +03:00
Antony Polukhin
20c7019799
Make sure that we do not occasionally disable variadic templates for Clang (refs trac #Clang compiler defines GNUC)
2014-12-02 19:10:18 +03:00
Antony Polukhin
6e31806038
Autodetect visitation result type for binary visitors (refs svn #10837 )
2014-12-02 18:59:58 +03:00
Antony Polukhin
f8a29a0d2f
Autodetect visitation return type for unary visitors (refs svn #10837 )
2014-12-02 17:48:57 +03:00
Antony Polukhin
ed614a6260
Applied patches from Boost.TypeIndex
2014-09-02 12:04:27 +04:00
Antony Polukhin
8f111d3126
Fix compilation of static visitors on GCC4.5.1
2014-08-15 11:48:26 +04:00
Antony Polukhin
1b50119b21
Fix issues reported by Boost Inspection Tool
2014-08-01 14:09:36 +04:00
Antony Polukhin
4ad95f185b
Minor improvements related to the forced_return() function
2014-06-23 21:04:48 +04:00
Antony Polukhin
0367512bc7
Fix for pull request #4 : make it possible to return movable-only structures; reduce resulting binary size by removing duplicate BOOST_ASSERTs
2014-06-23 20:10:10 +04:00
Antony Polukhin
9bc9c1c143
Do not use variadic templates on platforms that do not have full support of that feature
2014-04-24 11:53:00 +04:00
Ed Catmur
e30800b534
Substitute recursive variant tag within variadic templates (e.g. tuple)
...
Unspecialize variadic substitute on Arity to prevent ambiguity with boost::variant<...> partial specialization in recursive_variant.hpp; add test.
Add check for BOOST_NO_CXX11_HDR_TUPLE, in case we end up with a compiler with variadic templates but no std::tuple
2014-04-11 01:47:09 +01:00
Antony Polukhin
7a5b0f2538
Suppress warnings and add BOOST_SYMBOL_VISIBLE to exceptions
2014-02-11 11:05:33 +04:00
Antony Polukhin
63fb3ff427
Do not use variadic templates on MSVC2013 + add some tests to make sure that Spirit metaprogramming code works well with macro from Variant
2014-01-22 11:52:03 +04:00
Antony Polukhin
464799f446
Refs #9479 (polymorphic_get for Boost.Variant)
2013-12-10 16:13:49 +04:00
Antony Polukhin
f59cdef172
Fix preprocessor code that detects variadic templates usabilty
2013-12-09 12:39:10 +04:00
Antony Polukhin
e20324e2c4
Updated docs and variadic templates support
2013-12-09 11:50:15 +04:00
Stephen Kelly
724f7fdebc
Simplify multi-component ifdefs containing BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
...
[SVN r86248]
2013-10-11 23:20:59 +00:00
Stephen Kelly
037af28f3d
Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
...
Process #ifndef...#else...#endif blocks.
[SVN r86245]
2013-10-11 23:17:48 +00:00
Stephen Kelly
ee19ae6fb5
Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
...
Process #ifdef...#endif blocks.
[SVN r86243]
2013-10-11 23:13:10 +00:00
Antony Polukhin
2cbea14c39
More noexcept modifiers, especially for some of boost::get(T*) and assign/move_assign helpers (refs #7960 )
...
[SVN r86158]
2013-10-04 06:48:59 +00:00
Antony Polukhin
3ed1af5e79
Detect noexcept specification for default constructor of variant (refs #7911 )
...
[SVN r86135]
2013-10-02 13:13:17 +00:00
Antony Polukhin
ac98e0ce4e
Removed duplicate code in assign<->move_assign, added const modifiers (refs #7960 )
...
[SVN r86134]
2013-10-02 12:41:09 +00:00
Antony Polukhin
57f1c98b29
Mark move assignment with noexcept if possible (refs #7911 )
...
[SVN r86054]
2013-09-30 14:55:28 +00:00
Stephen Kelly
a283053408
Remove obsolete MSVC check from pragma guard
...
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq
is now clean.
[SVN r85952]
2013-09-26 13:02:51 +00:00
Stephen Kelly
84bdf52f3f
Variant: Remove use of obsolete macros.
...
[SVN r85951]
2013-09-26 09:48:32 +00:00
Stephen Kelly
0e0e0604e4
Variant: Remove obsolete MSVC version checks.
...
[SVN r85950]
2013-09-26 09:48:16 +00:00
Stephen Kelly
1bf7b791fd
Variant: Remove obsolete eti workaround.
...
[SVN r85949]
2013-09-26 09:47:54 +00:00
Antony Polukhin
97e5305d6b
Fix MSVC warning in Boost.Variant (refs #3020 )
...
[SVN r85928]
2013-09-26 07:46:25 +00:00
Antony Polukhin
791f267dda
Optimize and fix ambiguity of move_swap in Boost.Variant (refs #2839 )
...
Fix GCC-4.8+ warning in variant_reference_test.cpp
[SVN r85927]
2013-09-26 07:29:25 +00:00
Antony Polukhin
d8180bc3a8
Add experimental variadic templates support to Boost.Variant, enable usage of variadic version for gcc-4.8, clang-3.0 and later compilers (refs #9163 )
...
With this patch size of a binary siginificantly reduced (up to two times)
[SVN r85899]
2013-09-25 11:54:19 +00:00
Stephen Kelly
a1b3867b3a
Remove use of obsolete BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE{,_SPEC} macro.
...
[SVN r85896]
2013-09-25 10:29:44 +00:00