std::SignedIntegral
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header  <concepts>
  | 
||
|   template < class T > concept SignedIntegral = std::Integral<T> && std::is_signed_v<T>;  | 
(since C++20) | |
The concept SignedIntegral<T> is satisfied if and only if T is an integral type and std::is_signed_v<T> is true.
Notes
SignedIntegral<T> may be satisfied by a type that is not a signed integer type, for example, char (on a system where char is signed).
See also
|    (C++11)  | 
   checks if a type is an integral type   (class template)  | 
|    (C++11)  | 
   checks if a type is a signed arithmetic type   (class template)  |