je fais fonction qui convertit ints ou flotte à la chaîne:si constexpr et erreur de syntaxe « type »
#include <functional>
#include <string>
#include <iostream>
template <typename From>
inline std::string ToStr(const From& src)
{
constexpr bool isIntegral = std::is_integral<From>::value;
constexpr bool isFloat = std::is_floating_point<From>::value;
if constexpr (isIntegral)
return (std::_Integral_to_string<char>(src));
else if (isFloat)
return (std::_Floating_to_string("%f", src));
}
int main()
{
std::cout << ToStr(123);
}
J'utilise Visual Studio 2017 et je reçois des erreurs suivantes:
- erreur de syntaxe ' tapez 'sur la ligne 11 (premier si)
- illégale sinon sans correspondance si sur la ligne 13 (deuxième si)
Je ne sais pas comment y remédier, des idées?
Il n'y a pas de 'type' sur la 4ème ligne. Présentez votre [MCVE]. –
Hautement lié: https://stackoverflow.com/questions/5246049/c11-static-assert-and-template-instantiation – Rakete1111
@ LightnessRacesinOrbit mais c'est exactement le même code qui donne exactement ces erreurs. J'étais confus parce que, comme vous l'avez écrit, il n'y a pas de 'type' sur cette ligne. – Condzi