Released: July 3, 2020
(82f9561)
- Use perfect forwarding for internal value types deductions (#178) (#180)
- Implement support for "moving" values out (#142) (#178) (#180)
- Preserve ability to specify explicit
return_type
in visitors (#181) - Add self-assignment checks in copy and move assignment operator= (#164)
- Add relevant tests
Released: April 25, 2019
(a4f87dc)
- make type used for
type_index
configurable viatype_index_t
typdef + useunsigned int
by default. This addressessizeof
discrepancies between boost/std/mapbox variants (ref #19) view commit - use
mapbox::util::type_index_t
(#19) view commit - Ensure internal index type is capable of holding all alternatives (ref #138) view commit
- Add compile time check to disallow array types as alternatives. view commit
- Make
type_index_t
configurable at compile time viaMAPBOX_VARIANT_MINIMIZE_SIZE
andMAPBOX_VARIANT_OPTIMIZE_FOR_SPEED
. Default isunsigned int
. (ref #138) view commit - add missing view commit
- Adds a test for polymorphic lambdas in match, resolves #140 view commit
- Merge pull request #138 from mapbox/sizeof view commit
- Merge pull request #141 from mapbox/match-otherwise view commit
- Update bundled Catch to v1.9.0 view commit
- REQUIRE_THROWS etc take an expression not a block view commit
- Merge pull request #143 from tomhughes/catch view commit
- Add static_variant_cast, dynamic_variant_cast view commit
- Merge pull request #144 from narizhny/Casts view commit
- recursive_wrapper fail to compile when used with 2 classes which are base and derived #146 view commit
- recursive_wrapper test - avoid constructing new functor in recursive calls, call itself via
this
pointer. view commit - Merge branch 'master' of https://github.com/BlueSolei/variant into BlueSolei-master view commit
- Merge branch 'BlueSolei-master' view commit
- add test for ref #147 + #147 view commit
-
- Add a project mapbox_variant. - Use of the 'os' module to capture CXX_STD. - Common configs moved to project. - Built targets moved to 'out' directory. view commit
-
- Remove the use of boost libraries. - Add default build. view commit
-
- Use of the module 'os' to get BOOST_DIR. - Add macro SINGLE_THREADED to single threading mode. - Define single threading mode as default. - Add lambda_overload_test and hashable_test. view commit
-
- Add auxiliar rule exe-test. view commit
- Merge pull request #153 from ricardocosme/boost-build view commit
- Use forwarding reference in make_visitor and visitor view commit
- Add copy assignment and move assignment operators. view commit
- Merge pull request #154 from ricardocosme/forwarding_reference_make_visitor view commit
- add CHANGELOG.md skeleton view commit
- add to CHANGELOG entries. view commit
- update CHANGELOG (git log ... --pretty=format:'* %s view commit' --reverse) view commit
- use full sha1 view commit
- add intial
variant_alternative
implementation (#161 http://en.cppreference.com/w/cpp/utility/variant/variant_alternative) view commit - add lost test check + remove stderr view commit
- alternative implementation of
variant_alternative
view commit - add
variant_alternative_t
view commit - add optimized 'variant_alternative' implementation usinh built-in
__type_pack_element
when available (clang++) view commit - add compile index in range check for __type_pack_element branch. view commit
- fix preprocessor logic view commit
- add
variant_size
helper view commit - Merge pull request #162 from mapbox/variant_alternative view commit
- Removes deprecated static_visitor to avoid msvc C4996 compiler warning view commit
- Merge pull request #163 from MaxRis/master view commit
- Fix README.md issues view commit
- Merge pull request #165 from nick70/master view commit
- Fix the noexcept specifications for move assignment and conversion. view commit
- Merge pull request #160 from mlogan/master view commit
- report actual file size not allocated size. view commit
- use
ls -lah
asdu -h --apparent-size
is not universally supported. view commit - fix Makefile view commit
- try fixing travis via upgrading clang++ from 3.9.1 -> 4.0.1 view commit
- steady .. downgrade clang++ to 4.0.0 view commit
- update mason view commit
- update mason + update clang++ to 4.0.1 view commit
- Run ASAN builda in isolated VM via
sudo : required
view commit - Merge pull request #167 from mapbox/clang++4 view commit
- Moved to in-class initialization view commit
- Merge pull request #171 from mapbox/jrex-mute-clang-analyzer [view commit](http://github.com/mapbox/variant/commit/0305fdb2a462ca39db7b8cce189561bed17b48
Released: January 7, 2017
(d2588a8f1d6b5d480d228e6d8a906ce634bdea9a)
- add package.json for publishing to npm view commit
- test with clang 3.9 and g++-6 view commit
- travis: fix addons view commit
- makefile improvements view commit
- upgrade boost to 1.62.0 view commit
- upgrade mason view commit
- test clang++ via mason view commit
- fix clang++ PATH view commit
- disable clang++ 3.9, will work on getting working in a branch view commit
- test with clang++ sanitizers and flto view commit
- fix LDFLAGS view commit
- -fsanitize=cfi and -fsanitize=safe-stack view commit
- more sanitizer options view commit
- re-enable older compilers, trim excess view commit
- avoid expensive instantiation of tuple constructor in noexcept view commit
- Merge pull request #132 from lightmare/avoid-tuple-instantiation view commit
- enable -Werror, suppress warnings from non variant headers using isystem view commit
- fix conversion warnings view commit
- build in both release and debug on travis view commit
- fortification flags + -pthreads for linux where needed view commit
- try without pthreads view commit
- limit some flags to clang++ view commit
- Add -pthread view commit
- upgrade libstdc++ for coverage build view commit
- drop -Wstack-protector which gives unhelpful warnings view commit
- disable -Wparentheses for older gcc view commit
- Merge pull request #133 from mapbox/Werror view commit
- remove useless and/or dubious compiler flags view commit
- Merge pull request #134 from lightmare/warnings view commit
- osx: test that will support both latest (10.12) and oldest with c++11 support: 10.7 view commit
- fix gyp build view commit
- upgrade to llvm 3.9.1 view commit
- upgrade mason view commit
- Merge pull request #135 from mapbox/llvm-3.9.1 view commit
- Trivial missing comma in README example code view commit
Released: December 21, 2016
(02bd1ac4c07e6db9fe0f01267853e43b41637b74)
- Provides Convenient Lambda Overload Visitor Interface, resolves #113. view commit
- Removes ::type Usage view commit
- Adds C++14 SFINAE Test view commit
- Merge branch 'daniel-j-h-lambda-visitor' view commit
- Makes variant<Ts...> hashable iff Ts... are hashable, closes #125 view commit
- Implements Pattern Matching for Sum Types via
.match
Member Function. view commit - Adds Documentation for Readme, resolves #98 view commit
- Merge pull request #126 from daniel-j-h/hashable view commit
- Merge pull request #128 from daniel-j-h/match view commit
- Merge pull request #129 from daniel-j-h/docs view commit
Released: October 24, 2016
(a5a79a594f39d705a7ef969f54a0743516f0bc6d)
- use C++17 disjunction for no-references and one-convertible tests view commit
- Merge pull request #116 from lightmare/disjunction view commit
- Update README view commit
- expose
using types = std::tuple<Types...>;
- useful for adapting variant toboost::spirit
(QI,Karma,X3) view commit - add
struct adapted_variant_tag;
view commit - Merge pull request #120 from mapbox/types view commit
- nicer stderr view commit
- Fix #122 by adding an extra compile check in universal ctor (via @lightmare) + test case view commit
Released: July 26, 2016
(388376ac9f0102feba2d2122873b08e15a66a879)
- Re-implement type matching logic to reject ambigious conversions view commit
- update tests view commit
- comment out code view commit
- Merge pull request #114 from mapbox/strict-conversions view commit
Released: July 18, 2016
(c511b2f34d966c09e02a1b833db33a9a1f9b2196)
Released: February 11, 2016
(5aab5df0dc899b484c04ce9c649645787ee0bc5c)
- remove erroneous
;
ref #96 view commit - fix coverage to avoid warning: unit.gcno:version '402*', prefer '406*' view commit
- fix clang 3.8 compile, try 3.9 view commit
- remove invalid option for llvm-cov view commit
- run coverage with clang 3.5 - fix clang 3.8 build view commit
- issue warning
-Wweak-vtables
so this issue is not forgotten (#95) view commit - move headers into include/mapbox folder - closes #99 view commit
- Update README.md view commit
- Add include directory view commit
- Merge branch 'master' into include view commit
- fix typo view commit
- ammend include dir view commit
- update remaining
<variant.hpp>
to<mapbox/variant.hpp>
view commit - fix compilation view commit
- Merge pull request #101 from mapbox/include view commit
- Remove Xcode 6 from CI matrix view commit
- Install boost with mason; eliminate boost::timer dependency view commit
is<T>()
- add specialisation for recursive_wrapper + update tests (ref #102) view commit- remove expected error string - current implementation emits compiler specific error message e.g view commit
- Jamroot - add missing include directory ./test/include for auto_cpu_timer.hpp view commit
- Update README.md view commit
- Fix building with GCC (g++-5.2.0) on OS X (Darwin) (ref #108) view commit
- Update README.md view commit
- Merge pull request #109 from mapbox/darwin-build-flags view commit
- Add get_unchecked() to enable use with exceptions disabled view commit
- remove unused internal metafunctions view commit
- add static which() function to get a contained types' which value view commit
- Merge branch 'master' into 111-which-constexpr view commit
- Merge branch '111-which-constexpr' view commit
- variant - yield return type of mapbox::util::get automatically and make interface consistent (addresses #82) view commit
- uncomment tests ref #82 view commit
- Merge pull request #110 from mapbox/110-get_unchecked view commit
- c++ apply formatting view commit
- use local HAS_EXCEPTIONS #define (__EXCEPTIONS is g++/clang specific macro) view commit
- update .mason pkgs view commit
- fix value_traits to be able to match T, T& and T const& to the direct type stored in variant (ref #112) view commit
- add test for b3a002d185afac295486e2ebd6b84c78a2267ba0 (ref #112) view commit
Released: April 1, 2015
(bf485dfb59aef26f3ef2183d7c8c1111ad97062b)
- Initial commit view commit
- initial import view commit
- remove unused boost::static_visitor view commit
- call reserve in boost::variant test and change order view commit
- add readme and makefile view commit
- makefile fixups view commit
- turn on more aggressive warnings and fix them where appropriate view commit
- -Wsign-compare view commit
- remove unneeded headers view commit
- include view commit
- include headers for new/size_t/move view commit
- add sizes target to check object sizes view commit
- add tests view commit
- interleave test runs to ensure first run penalty does not murky the results view commit
- add to gitignore view commit
- fix build on ubuntu/g++-4.8 view commit
- debug/release builds + profiling view commit
- pass release flags to make sizes view commit
- force inlining to reduce final object size (yes reduce, with clang++ at least) view commit
- optimization: avoid overhead of function call for invalid type check view commit
- test threaded view commit
- 10 threads view commit
- use perfect forwarding instead of move view commit
- const as const can. also reimplementation of operator= to allow for ADL in swap view commit
- Merge pull request #1 from artemp/consts_and_fwds view commit
- implement comparison operators (==,<) implement operator<< view commit
- make THREADS=4 ( we want to test variant not an operating system, better still make it config (TODO)) add simple test for operator== and operator<< ( define VARIANT_LOGICAL_TESTS to enable) view commit
- c++ : better names (#2) view commit
- c++ : better names (#2) view commit
- Merge branch 'master' of github.com:artemp/variant view commit
- Added const view commit
- Fixed var names view commit
- changing const keyword position to 'T const &' view commit
- Add -march=native to release build flags, implies -mtune=.. view commit
- Merge pull request #7 from artemp/const_correctness_part2 view commit
- Merge pull request #8 from artemp/architecture-optimizations view commit
- fix remaining names view commit
- add -march=native to Jamroot view commit
- more name fixing ref #2 view commit
- structs dont have private members view commit
- add pgo option to Makefile view commit
- Merge pull request #9 from artemp/classes_and_structs view commit
- Merge pull request #10 from artemp/profile_guided_optimization view commit
-
- implement binary visitation view commit
- more realistic test view commit
- fix return types view commit
- Return uint64_t view commit
- recursive_wrapper init impl view commit
- Merge branch 'master' of github.com:artemp/variant view commit
-
- add static_visitor requirement to ease return_type deduction view commit
- fix binary visitor test view commit
- use static_visitor as a base class for all visitors view commit
- recursive_wrapper test (work-in-progress) view commit
- include recursive_wrapper view commit
- update test (FIXME - inteface is very clunky atm and needs more work) view commit
- unwrap recursive_wrapper view commit
-
- const view commit
- recursive variant test using std::unique_ptr move semantics view commit
- add missing test file view commit
- update recursive_wrapper and unique_ptr tests to accept arg view commit
- make test -> make bench view commit
- fix compile of test/variant view commit
- recursive_wrapper.hpp depends on boost checked delete for the moment view commit
- shuffle code, all build targets in out/ directory view commit
- all tests in ./test directory view commit
- add travis view commit
- fix travis targets view commit
- travis: upgrade to gcc-4.8 for c++11 support view commit
- fix a few -Wsign-compare warnings view commit
- fix -Wshadow warning view commit
- fix linux compile of binary_visitor_test.cpp view commit
- qualify c++11 int types view commit
- fix #12 view commit
- test with both gcc 4.7 and 4.8 view commit
- Add BSD license view commit
- add unit tests view commit
- port logical tests to test/unit.cpp - refs #15 view commit
- version, starting at 0.1.0 view commit
- try building on windows with gyp view commit
- call gyp_main.py view commit
- be explicit about config and platform view commit
- also test building with gyp on travis view commit
- try 'any cpu' view commit
- put msbuild on path view commit
- appveyor: try building 32 bit view commit
- Update README.md view commit
-
- it breaks builds for me - I have 'using clang ..' in $(boost-dir)/tools/build/v2/user-config.jam where it should be. view commit
apply_visitor
interface not-compatible with boost::apply_visitor (by changing args order) wasn't smart view commit- fix syntax view commit
- windows support view commit
- update readme view commit
- appeveyor: try building for just x86 view commit
- fix setting of msbuild_toolset for c++11 support view commit
- Add vcbuild.bat view commit
- remove sizeof checks since they are implementation depedenent view commit
- comment failing test on windows view commit
- appveyor: re-enable matrix view commit
- add to be include order agnostic view commit
- Merge pull request #16 from DennisOSRM/master view commit
- move detail tests + add initial comments (@artemp, please review) view commit
- fix typo in code comment [skip ci] view commit
- rename internal id to index, add tests view commit
- Merge pull request #18 from mapbox/type_index view commit
- modify tests slightly to output num_iter ((3+2)-4) view commit
- boost is uneeded for unit.cpp tests view commit
- enable ctor's for valid types at compile time view commit
- [travis] multi-os view commit
- fix path to boost/variant.hpp on linux view commit
- move variant and friends into mapbox namespace for easy integration view commit
- fix namespace view commit
- inline accessors/setters view commit
- default ctor : initialise with default contructed first type in parameters pack view commit
- add default ctor test view commit
- c++11 : use type aliases instead of typedefs view commit
- converting operator= view commit
- avoid wrapped object copying view commit
- fix move ctor + housekeeping view commit
- add view commit
- remove unused header view commit
- uncomment to test single threaded view commit
- fix bug : assign correct index (in reverse order of args) e.g first type is sizeof...(Types) - 1 view commit
- fix default ctor unit test view commit
- [gyp] fix typo in Windows release targets view commit
- add non-const visitor interface (#22) view commit
- add unary_visitor test view commit
- support implicit type convertions view commit
- update to use recursive_wrapper -> T conversions view commit
- unit test : update to use latest variant impl view commit
- Mapbox name without the inner uppercase B. view commit
- Fix typo in comment. view commit
- Formatting fixes. view commit
- Use formatting "TYPE const&". view commit
- Remove superfluous and inconsistent whitespace. view commit
- Add comments for closing namespaces. view commit
- Merge branch 'joto-master' view commit
- Fix typos, whitespace and test tags. view commit
- Add tests for implicit conversion and exceptions for wrong types. view commit
- Add test for printer visitor. view commit
- Add test case for issue #25. view commit
- fix appveyor link in readme view commit
- Remove the need for the static_visitor class. view commit
- msvs: also define _DEBUG for debug builds view commit
- [appveyor] more debug flags view commit
- [appveyor][gyp] correct msvs_settings usage view commit
- customize release builds view commit
- [gyp][windows] add exception handling/rtti view commit
- use numeric values in valid range to avoid overflowing view commit
- Removed wrong comments. view commit
- Removed test case. view commit
- allow explicit un-initilised variant ctor view commit
- add boost::variant compatible accessors view commit
- more verbose output to test script view commit
- variant : make operator<< stricter to avoid unexpected instantiations view commit
- Add details on advantages of Mapbox variant view commit
- remove unneeded header view commit
- less debug info in release mode view commit
- rough cut of an optional type view commit
- add operator* and a static assert against reference types view commit
- Merge pull request #30 from DennisOSRM/optional view commit
- remove some whitespace view commit
- explicit operator bool() const noexcept view commit
- rename none_t -> none_type, move to private member of optional view commit
- remove instantiation of none_type as per @kkaefer's suggestion view commit
- remove none_type and its complicated typedef from detail namespace, add it as private member class to optional view commit
- guard against self-assignment view commit
- add unit tests for optional type view commit
- Merge pull request #31 from mapbox/optional view commit
- reformat optional.hpp to be more legible and less linty view commit
- universal-references: template variant(T && val) {} it turned out we don't need a separate converting copy ctor (fixes windows compiler) view commit
- Merge pull request #32 from mapbox/universal-references view commit
- use std::forward for perfect forwarding (via @DennisOSRM) view commit
- fix assignment of optionals, adds a unit test view commit
- Merge pull request #33 from mapbox/fix_assignment_operator view commit
- readme improvements view commit
- Merge branch 'master' into result_of view commit
- cast lhs to rhs type to avoid signed/unsigned comparisons warnings view commit
- attempting to fix travis view commit
- Merge branch 'master' into result_of view commit
- make deriving from static_visitor and providing result_type an option view commit
- Merge branch 'result_of' view commit
- fix automatic return_type calculation - ref #35 view commit
- test either g++ or clang++ view commit
- try adding code coverage / coveralls upload view commit
- fix bash syntax view commit
- add recursive wrapper to coverage view commit
- move operator<< into separate header <variant_io.hpp> view commit
- add coverage report view commit
- clean up coverage files in test directory too [skip ci] view commit
- add get() overloads for when T is stored in recursive_wrapper also makes get() a compile time error where T is not in Types... (ref #24) view commit
- update unit test to match c64c74775a80474f2012c1a49ab2865e3666107a view commit
- add which() method returning zero based index of stored T in Types... for boost::variant() compatibility view commit
- add reference_wrapper test view commit
- remove boost variant header view commit
- add support for 'unwrapping' std::reference_wrapper and accessing std::reference_wrapper::type through get() + update test view commit
- pass F (functor) by ref/const ref view commit
- pass by const ref in 'apply_const' view commit
- Revert "pass by const ref in 'apply_const'" view commit
- Revert "pass F (functor) by ref/const ref" view commit