Boost.Hana  1.4.0
Your standard library for metaprogramming
boost::hana::constant_detail::which< A, B, C > Struct Template Reference

Description

template<typename A, typename B, typename C>
struct boost::hana::constant_detail::which< A, B, C >

Todo:
This is an awful hack to avoid having
common<integral_constant_tag<int>, integral_constant_tag<long>>
==
CanonicalConstant<long>