Eggs.Variant is a C++11/14/17 generic, type-safe, discriminated union —see it on Github—.



The library requires a standard conformant implementation of C++11; a few additional features are only available under C++14/17. Some effort was done to support incomplete language or standard library implementations —see Config—. There are no external dependencies.

The library is continuously tested with the following configurations: Build Status Build Status

  • Clang 3.9, 4, 5
  • GCC 5, 6, 7
  • Apple LLVM 7.3, 8.3, 9.1
  • MSVC 2015, 2017

[Note: Older versions of Clang (3.0+) and GCC (4.6+) are no longer tested, but should still work; please report any issues if you are using them. Older versions of MSVC are not supported.]

Copyright Agustín Bergé, Fusion Fenix 2014-2017

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.txt or copy at