#include <tuple>
template< class X > struct Hold {
    X x;
	constexpr Hold( X x ) : x(std::move(x)) { }
};
constexpr auto a = Hold<int>( 1 ); //ok
constexpr auto b = Hold<std::tuple<int>>( std::tuple<int>(1) ); // not