Commit Graph

197 Commits

Author SHA1 Message Date
Antony Polukhin
12ab1675c7 Another attempt to improve tests coverage 2014-12-11 18:46:29 +03:00
Antony Polukhin
a79b3978a5 Improve tests coverage: add tests to ensure varinat is in correct state after exception in assignment of move assignemnt functions; make sure that recursive varinats swap and assign well 2014-12-11 17:47:19 +03:00
Antony Polukhin
3e9aec5371 Avoid some non essential hard for compilers tests, improve tests coverage 2014-12-11 15:21:35 +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
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
1b50119b21 Fix issues reported by Boost Inspection Tool 2014-08-01 14:09:36 +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
134dfbf46e Do not use in hash tests. Added a few more tests for variant hashing 2014-05-07 18:49:09 +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
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
e20324e2c4 Updated docs and variadic templates support 2013-12-09 11:50:15 +04:00
Antony Polukhin
0d43b3ec34 Commit missing test file for Boost.Variant and uncomment line in Jamfile (refs #2839)
[SVN r86049]
2013-09-30 07:39:25 +00:00
Rene Rivera
b0ec38cbc4 Fix overall Boost testing because of missing file.
[SVN r85991]
2013-09-28 20:02:17 +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
Antony Polukhin
1b57cf1ade Fix issue with const rvalue references in Boost.Variant (refs #8988)
[SVN r85315]
2013-08-12 12:00:13 +00:00
Antony Polukhin
f9d2d9f9d9 Get rid of Boost.Variant hand written non-usable move emulation and use Boost.Move instead (refs #7601). This commit does not make Boost.Variant use move emulated assignments in all situations, but at least removes duplicate/non-working code and makes sure that Boost.Variant is able to work with boost::move (one step closer to full support of rvalue references emulations).
[SVN r85159]
2013-07-25 13:19:50 +00:00
Antony Polukhin
86165b88e3 Temporary disable noexcept detection for move assignment for Boost.Variant (exception specification detection for assignment requires call to is_nothrow_move_assignable for each type. But GCC 4.6 fails to do that and complains about incomplete types ) (refs #7911)
[SVN r85089]
2013-07-20 17:20:02 +00:00
Antony Polukhin
e8e060416c Fix test case (refs #8772)
[SVN r85087]
2013-07-20 15:32:31 +00:00
Antony Polukhin
eebda61e78 Make Boost.Variant work on exception-disabled environments (refs #8717)
[SVN r85081]
2013-07-19 11:40:06 +00:00
Antony Polukhin
a3eb4ddd48 Fix compilation of Boost.Variants move assignment for situations when one of the variant template classes has nothrow copy constructor and throwing move constructor (refs #8772)
[SVN r85080]
2013-07-19 07:52:40 +00:00
Antony Polukhin
e6014a3e21 Added code (and tests) to mark move constructors and move assignemnt of Boost.Variant as noexcept if possible (refs #7911)
[SVN r85079]
2013-07-19 07:43:03 +00:00
Antony Polukhin
f5f3769cd4 Update Boost.Variant documentation, add info about multivisitors (refs #8459)
[SVN r84227]
2013-05-10 16:30:12 +00:00
Antony Polukhin
64673bf9df Added one more test for multivisitors that will be used as an example in documentation (refs #8459)
[SVN r84224]
2013-05-10 14:08:49 +00:00
Antony Polukhin
bc54cab94e Multivisitors commit (refs #8459)
[SVN r84112]
2013-05-02 16:45:58 +00:00
Antony Polukhin
d1376d9783 Basic rvalues and C++11 support part 2 (refs #7718 , all bugs from patch were fixed)
[SVN r81617]
2012-11-28 19:20:19 +00:00
Antony Polukhin
f398fb9b2a Added basic rvalue support and marked some functions with BOOST_NOEXCEPT (#refs #7620)
[SVN r81293]
2012-11-11 08:04:55 +00:00
Antony Polukhin
2bef470d77 Fixes #6163 (hash function for variant added)
[SVN r75606]
2011-11-22 16:05:44 +00:00
Steven Watanabe
f9e03b6053 Supress warnings from variant. Refs #4666.
[SVN r71083]
2011-04-07 15:35:56 +00:00
Steven Watanabe
3f255f9108 Avoid error instantiating map with recursive_variant_. Disable ADL to make instantiation less likely. Fixes #4584.
[SVN r67604]
2011-01-03 04:57:44 +00:00
Steven Watanabe
392fab2f89 Make sure that recursive_variant_ substitution works in all cases. Fixes #1654
[SVN r62753]
2010-06-10 18:16:19 +00:00
John Maddock
0110af77a4 Fix various Variant warnings.
Addresses issue #1507.

[SVN r57631]
2009-11-13 10:07:30 +00:00
Troy D. Straszheim
fad89dadec rm cmake from trunk. I'm not entirely sure this is necessary to satisfy the inspect script, but I'm not taking any chances, and it is easy to put back
[SVN r56942]
2009-10-17 02:07:38 +00:00
Troy D. Straszheim
802f51fdc0 Copyrights on CMakeLists.txt to keep them from clogging up the inspect
reports.  This is essentially the same commit as r55095 on the release
branch.



[SVN r55159]
2009-07-26 00:49:56 +00:00
Daniel James
5d727edcff Support BOOST_NO_TYPEID and BOOST_NO_IOSTREAM in Boost.Variant. Fixes #3051.
[SVN r53682]
2009-06-06 11:46:24 +00:00
Michael A. Jackson
0fe5e2e874 Updating CMake files to latest trunk. Added dependency information for regression tests and a few new macros for internal use.
[SVN r49627]
2008-11-07 17:02:56 +00:00
Michael A. Jackson
7df722ef6e Continuing merge of CMake build system files into trunk with the encouragement of Doug Gregor
[SVN r49510]
2008-11-01 13:15:41 +00:00
Vladimir Prus
ba9d0e00d7 Remove V1 Jamfiles
[SVN r38516]
2007-08-08 19:02:26 +00:00
Douglas Gregor
5d4de6f145 Make sure strlen is available
[SVN r27981]
2005-04-05 13:19:56 +00:00
Stefan Slapeta
3f93e162a2 replaced BOOST_TEST
[SVN r27054]
2005-02-03 13:48:49 +00:00
Douglas Gregor
ed1f810071 License updates
[SVN r24597]
2004-08-19 15:19:17 +00:00
Douglas Gregor
6d5d1e15ce License update
[SVN r24175]
2004-07-30 01:47:08 +00:00
Eric Niebler
17df22fa13 move BOOST_USING_STD_MIN and _MAX and BOOST_PREVENT_MACRO_SUBSTITUTION to the config headers, remove boost/minmax.hpp, update coding guidelines
[SVN r23313]
2004-07-02 01:21:32 +00:00
Eric Niebler
ab5613293f remove std_min and std_max, update minmax coding guidelines
[SVN r23162]
2004-06-23 04:49:48 +00:00
Vladimir Prus
5bb8bbcd32 Add V2 Jamfile.
[SVN r22858]
2004-05-18 07:30:09 +00:00
Eric Niebler
ec94e74611 remove minmax hack from win32.hpp and fix all places that could be affected by the minmax macros
[SVN r22394]
2004-02-26 18:27:02 +00:00
Eric Friedman
46c5c15a62 Updated boost::get<T>(const) now returns const T.
[SVN r21385]
2003-12-23 22:50:06 +00:00
Eric Friedman
419c8b1249 recursive_variant is now spelled make_recursive_variant.
[SVN r20725]
2003-11-07 06:02:40 +00:00
Eric Friedman
7ba6a79740 Workaround for gcc 2.95.
[SVN r20106]
2003-09-18 23:35:55 +00:00
Eric Friedman
3865808373 Now tests for const-correctness.
[SVN r20087]
2003-09-17 06:27:09 +00:00
Eric Friedman
9d678ba9c4 Added variant_visit_test.
[SVN r20085]
2003-09-17 05:01:55 +00:00
Eric Friedman
9f50c3e8a2 Removed unneeded workaround.
[SVN r20074]
2003-09-16 07:12:35 +00:00
Eric Friedman
d7bf902eaf Added base-derived test.
[SVN r20065]
2003-09-15 06:25:22 +00:00
Eric Friedman
9b0c9e87e5 Renamed boost::incomplete to recursive_wrapper.
[SVN r20011]
2003-09-11 06:47:04 +00:00
Dave Abrahams
accb34a6ba Use the import rule
[SVN r19968]
2003-09-08 17:38:49 +00:00
Eric Friedman
3fdc83a8b2 Renamed from variant_before_test.cpp.
[SVN r19966]
2003-09-08 16:15:55 +00:00
Eric Friedman
3d6606ccbd 1) Replaced variant_before with variant::operator<; 2) Added variant::operator==.
[SVN r19953]
2003-09-08 04:42:10 +00:00
Eric Friedman
dd788dc1ff Added variant_before test.
[SVN r19887]
2003-08-31 08:22:21 +00:00
Eric Friedman
ee0081030d Added reference test.
[SVN r19870]
2003-08-29 20:03:04 +00:00
Eric Friedman
b7cca0b3fb Is incomplete even needed?
[SVN r19779]
2003-08-26 06:55:30 +00:00
Eric Friedman
dbcae544b0 Dramatically reduced overhead caused by recursive_variant implementation for non-recursive variants.
[SVN r19720]
2003-08-21 07:16:09 +00:00
Eric Friedman
586ba6d043 Added copyright and file info.
[SVN r19538]
2003-08-11 20:42:02 +00:00
Eric Friedman
33755650ab Added recursive_variant test.
[SVN r19537]
2003-08-11 20:39:07 +00:00
Eric Friedman
f5df0a22f7 Fixed file info.
[SVN r19387]
2003-07-31 01:38:13 +00:00
Eric Friedman
50321b1a6c Fixed file info.
[SVN r19381]
2003-07-31 00:45:44 +00:00
Eric Friedman
dc4f46b960 Allow get of const from non-const variant.
[SVN r19374]
2003-07-30 22:23:54 +00:00
Itay Maman
5aed0a4cd7 Copyright notice added
[SVN r19327]
2003-07-28 08:41:23 +00:00
Eric Friedman
f1e53ab58a Added missing dependency.
[SVN r19272]
2003-07-23 02:40:47 +00:00
Eric Friedman
f21d2dc0cd Added BOOST_VARIANT_ENUM_PARAMS and variant streaming support.
[SVN r19140]
2003-07-16 06:47:45 +00:00
Eric Friedman
d72c9b904f Final (?) MSVC6 workarounds.
[SVN r19131]
2003-07-15 21:15:08 +00:00
Eric Friedman
3d31bda305 Const-correctness changes.
[SVN r19094]
2003-07-13 09:27:19 +00:00
Eric Friedman
424999966e More detail error notification.
[SVN r19093]
2003-07-13 08:33:49 +00:00
Eric Friedman
d8493b9ea2 Eliminated warning.
[SVN r18895]
2003-06-30 20:44:33 +00:00
Eric Friedman
f06fa79dd8 Initial attempt at MSVC6 workarounds.
[SVN r18842]
2003-06-19 23:19:53 +00:00
Eric Friedman
fd573ab747 Eliminated warnings on Borland.
[SVN r18825]
2003-06-17 22:08:59 +00:00
Eric Friedman
e0c5685899 Borland workarounds.
[SVN r18817]
2003-06-17 02:27:45 +00:00
Eric Friedman
44e927130f Workaround in tests for gcc 2.9.5.
[SVN r18790]
2003-06-14 05:03:54 +00:00
Eric Friedman
7aa9c6a219 Allow printing of a variant contained in a variant.
[SVN r18747]
2003-06-09 22:42:44 +00:00
Eric Friedman
dcf501a1db Inlined templated function in header.
[SVN r18706]
2003-06-07 22:58:54 +00:00
Eric Friedman
88b0a460e7 Inlined templated function in header.a
[SVN r18705]
2003-06-07 22:55:55 +00:00
Eric Friedman
0d71dfb805 Eliminated unnecessary semicolon (Comeau warning).
[SVN r18704]
2003-06-07 22:50:33 +00:00
Eric Friedman
7683d3180a Temporary fix for conflicting test names.
[SVN r18648]
2003-06-02 21:46:13 +00:00
Eric Friedman
7e731997d9 Added the Variant library test-suite.
[SVN r18580]
2003-05-28 08:38:16 +00:00
Eric Friedman
bb596cae89 Migrated from Sandbox CVS.
[SVN r18578]
2003-05-28 08:05:16 +00:00