これは簡単です。標準C++ライブラリには、numeric_limitsというクラステンプレートがありますので、その静的データメンバis_signedを参照すればよいだけです。numeric_limitsクラステンプレートを使用するには、<limits>をインクルードする必要があります。

 

使用例:

C++11以降であれば、<type_traits>で定義されているis_signedクラステンプレートを使うこともできます。

また、C++17以降であれば、is_signed_vを使うこともできます。

 

使用例:

※ std::は省略しています。


元ネタ

↑ 1. 整数型に関するテンプレート