Du coup j'ai compris pour les template, donc je peux transformer ce code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | int math::abs(int const x) { if (x == 0) return 0; else if (x > 0) return x; else return -x; } float math::abs(float const x) { if (x == 0) return 0; else if (x > 0) return x; else return -x; } |
en celui là:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | template<typename T> T math::abs(T const x) { if (x == 0) return 0; else if (x > 0) return x; else return -x; } int math::abs(int const x) { return math::abs<int>(x); } float math::abs(float const x) { return math::abs<float>(x); } |
mais du coup je me pose une autre question qui est "est-ce que je peux limiter les types que ma template T peux avoir ?" (je veux pas que l'on essaye d'avoir la valeur absolue d'une string)
+0
-0