c++: Instantiate less when evaluating __is_convertible