is_signed
- как и многие другие структуры, это способ проверки типа , но не переменной .вы можете использовать decltype
, чтобы получить базовый тип ваших переменных.
std::cout << std::is_signed<decltype(price)>::value << '\n'; //-> 1
Также - is_signed
определяется в <type_traits>
, а не <cmath>
.
, как уже упоминалось в комментариях;если вы намерены просто посмотреть, является ли переменная положительной или отрицательной , вам не понадобятся какие-либо библиотечные утилиты.
Для получения этой информации используйте price > 0
или price < 0
соответственно.Это, конечно, операции только во время выполнения.