c++: Implement __is_nothrow_invocable built-in trait