2
我做函數轉換整數或浮弦:如果constexpr和語法錯誤「類型」
#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);
}
我使用Visual Studio 2017年,我得到以下錯誤:
- 語法錯誤「 (第一if)
- 非法否則不匹配如果在線13(第二if)
我不知道如何解決它,任何想法?
第四行沒有'type'。出示您的[MCVE]。 –
高度相關:https://stackoverflow.com/questions/5246049/c11-static-assert-and-template-instantiation – Rakete1111
@LightnessRacesinOrbit但是完全相同的代碼給出了這個錯誤。我很困惑,因爲你寫的那條線上沒有'type'。 – Condzi