9#ifndef CLASSDESC_TYPENAME_EPILOGUE_H
10#define CLASSDESC_TYPENAME_EPILOGUE_H
12#include "typeName-allCDs.h"
17 template <
class T>
typename
21 std::ostringstream os;
22 os<<CHAR_BIT*
sizeof(
T);
23 return (is_unsigned<T>::value?
"unsigned int":
"int")+os.str()+
"_t";
26 template <
class T>
typename
28 typeNamep() {
return integralTypeName<T>();}
30#if defined(__cplusplus) && __cplusplus>=201103L
32 struct tn<
T, void_t<typename std::iterator_traits<T>::value_type>>
34 static std::string name() {
return "iterator";}
38 template <
class T>
typename
46 template <
class T>
typename
48 typeNamep() {
return "const "+typeName<typename remove_const<T>::type>();}
52 typeName() {
return typeNamep<T>();}
54#if defined(__cplusplus) && __cplusplus>=201103L
58 static std::string name() {
return typeName<T>();}
Contains definitions related to classdesc functionality.
Definition classdesc.h:420
Definition classdesc.h:405
controlled template specialisation: stolen from boost::enable_if.
Definition classdesc.h:282
Definition classdesc.h:571