How about decltype(std::declval<T>() + std::declval<J>())
?
Type traits to get result of promotion from operator
-
27-06-2023 - |
質問
Implicit type conversion rules in C++ operators
Lists the implicit type conversion for C++.
So the question is, is there a type trait that can do that table? something akin to
template <typename T, typename J>
struct promotion_type
{
typedef decltype(operator+(const T&,const J&)) type;
};
(Not my question, but this doesn't compile:
/home/user/source/testdir/main.cpp:97:51: error: there are no arguments to 'operator+' that depend on a template parameter, so a declaration of 'operator+' must be available [-fpermissive]
typedef decltype(operator+(const T&,const J&)) type;
^
/home/user/source/testdir/main.cpp:97:51: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
)
解決
所属していません StackOverflow