#include "variant.hpp" #include <cstdint> #include <stdexcept> using namespace mapbox; struct check : util::static_visitor<> { template <typename T> void operator() (T const& val) const { if (val != 0) throw std::runtime_error("invalid"); } }; int main() { typedef util::variant<bool, int, double> variant_type; variant_type v(0); util::apply_visitor(check(), v); return 0; }