Bonjour à tous,
J'ai un problème confirmé avec le code ci-dessous, l'addition de deux int16_t me renvoi un int! Est-ce que c'est un comportement normal? Parce que du coup je suis obligé d'employer un static_cast sur le résultat car sinon je prends des warnings de gcc.
Et si dessous la sortie :
Code : 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 #include <iostream> template<typename T> struct f{ static constexpr const char *str = "unknown"; }; template<> struct f<int>{ static constexpr const char *str = "int"; }; template<> struct f<int16_t>{ static constexpr const char *str = "int16_t"; }; int main(){ std::cout << f<double>::str << std::endl; std::cout << f<int16_t>::str << std::endl; int16_t a(0), b(0); std::cout << f< decltype(a+b) >::str << std::endl; }
Merci beaucoup d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 unknown int16_t int
Partager