Embedded Template Library 1.0
|
#include <integral_limits.h>
Public Types | |
typedef signed char | value_type |
Static Public Attributes | |
static ETL_CONSTANT signed char | min = SCHAR_MIN |
static ETL_CONSTANT signed char | max = SCHAR_MAX |
static ETL_CONSTANT int | bits = CHAR_BIT |
static ETL_CONSTANT bool | is_signed = etl::is_signed<signed char>::value |
The technique of using templated base classes to declare and define the statics is to get around the limits of the One Definition Rule (ODR) that occurs when the top level integral_limits classes are specialised. This issue currently seems to only be apparent for GCC/C++14. In C++17 and above this is not necessary, as the inline keyword may be used. At the time of writing, the ETL is generally aimed to be compatible with C++98 and above.