combie:
static_assert(not is_unsigned(), "Error, kein gültiger Indextyp");
Doch - unsigned ist ja gerade der gültige Indextyp. Float, int usw. wären ungültig.
also static_assert meckert, wenn es nicht erfüllt ist? Dann hatte ich das falsch verstanden.
Doch
...
also static_assert meckert, wenn es nicht erfüllt ist?
Ja, es prüft auf Einhaltung der Bedingung.
static_assert(is_floating_point<T>(), "Fliesskomma Type erwartet");
static_assert(is_integral<T>(), "Ganzzahliger Type erwartet");
static_assert(is_signed<T>(), "Ganzzahliger Type, mit Vorzeichen, erwartet");
static_assert(is_unsigned<T>(), "Ganzzahliger Type, ohne Vorzeichen, erwartet");
static_assert(is_same<U,V>(), "Templateparameter U und V muessen den gleichen Type haben");
typetrait005:28:65: error: type/value mismatch at argument 1 in template parameter list for 'template<bool b> struct bool_type'
28 | template<typename T> struct is_void :bool_type<is_same<T,void>()> {};
| ^
E:\Programme\arduino\portable\sketchbook\typetrait005\typetrait005.ino:28:65: note: expected a constant of type 'bool', got 'is_same<T, void>()'
exit status 1
type/value mismatch at argument 1 in template parameter list for 'template<bool b> struct bool_type'
Hier steckt das Problem:
:bool_type<is_same<T,void>()> {};
Dieses funktioniert:
:bool_type<true ||is_same<T,void>()> {};