Bonjour à tous.
J'ai un petit problème avec std::common_type. En effet le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include <iostream>
#include <type_traits>
template<class T> class MyClass
{
public:
MyClass(const T& n) : _n(n) {;}
template<class TRHS> MyClass<typename std::common_type<T, TRHS>::type> myFunction(const MyClass<TRHS>& rhs)
{
return MyClass<std::common_type<T, TRHS>::type>(_n*2+rhs._n);
}
T _n;
};
int main()
{
MyClass<double> a(3);
MyClass<int> b(5);
std::cout<<(a.myFunction(b))._n<<std::endl;
return 0;
} |
ne compile pas et me renvoie le message d'erreur :
erreur: expected a type, got std::common_type<T, TRHS>::type
D'où vient le problème et comment y remédier ?
Merci beaucoup
Partager