Commit Graph

351 Commits

Author SHA1 Message Date
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