Bonjour,

Cette fois, j'aimerais éviter de créer 12000 templates pour tous les types de données arithmétiques possibles. Aussi, j'arrive avec ce bout de code (qui ne marche pas) :

Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <type_traits>
#include <iostream>
 
using namespace std;
 
template<class T>
inline int f(const T& t){
	if(is_class<T>::value){
		return 1337;
	}else if(is_arithmetic<T>::value){
		cout << t+1;
		return 9999;
	}
}
 
class A{
public:
	A(){}
};
 
int main(){
	A a;
	cout << f(a);
	cout << f(3);
	cout << f(0.5);
	return 0;
}

Je pense que vous voyez ce que je cherche à faire. Le but est d'éviter des constructions comme :
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
template<>int f(const float& t)...
template<>int f(const int& t)...
//etc...