有了decltype
我可以做到以下几点:
template <typename T1, typename T2>
auto sum(T1 const & t1, T2 const & T2)
-> decltype(t1+t2)
{ /* ... */ }
但是,在我的情况下,我需要找出加法的类型,而不需要类型T1
和T2
. 具体来说:
template <typename ValueType>
class Matrix
{
/* ... */
public:
template <typename CompatibleType>
auto operator+(Matrix<CompatibleType> const & other)
-> Matrix<decltype(ValueType+CompatibleType)>
{ /* ... */ }
};
当然,decltype(ValueType+CompatibleType)
这种方式行不通。有什么办法可以做到这一点?