Changeset 115:1b996ddfb1cc in rrlib_rtti


Ignore:
Timestamp:
18.02.2019 18:53:11 (6 months ago)
Author:
Max Reichardt <max.reichardt@…>
Branch:
17.03
Children:
116:0f32e8316d2c, 117:d095ce4d8a1e
Phase:
public
Message:

Makes associative containers no longer auto-register their element types (currently no use (case); std::pair elements with const element type(s) would cause issues in generic handling)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • detail/tDataTypeInfo.h

    r104 r115  
    107107{ 
    108108  static tTypeInfo::tSharedInfo shared_info; 
    109   typedef typename NormalizedType<typename ElementType<T>::type>::type tElement; 
     109  typedef typename NormalizedType<typename ElementType<typename std::conditional<serialization::IsAssociativeContainer<T>::value, void, T>::type>::type>::type tElement; 
    110110  typedef typename std::conditional<std::is_same<typename UnderlyingType<T>::type, T>::value, void, typename UnderlyingType<T>::type>::type tUnderlying; 
    111111  struct tTable 
     
    122122{ 
    123123  static tTypeInfo::tSharedInfo shared_info; 
    124   typedef typename NormalizedType<typename ElementType<T>::type>::type tElement; 
     124  typedef typename NormalizedType<typename ElementType<typename std::conditional<serialization::IsAssociativeContainer<T>::value, void, T>::type>::type>::type tElement; 
    125125  typedef typename std::conditional<std::is_same<typename UnderlyingType<T>::type, T>::value, void, typename UnderlyingType<T>::type>::type tUnderlying; 
    126126  struct tTable 
     
    139139{ 
    140140  static tTypeInfo::tSharedInfo shared_info; 
    141   typedef typename NormalizedType<typename ElementType<T>::type>::type tElement; 
     141  typedef typename NormalizedType<typename ElementType<typename std::conditional<serialization::IsAssociativeContainer<T>::value, void, T>::type>::type>::type tElement; 
    142142  typedef typename std::conditional<std::is_same<typename UnderlyingType<T>::type, T>::value, void, typename UnderlyingType<T>::type>::type tUnderlying; 
    143143  struct tTable 
     
    156156{ 
    157157  static tTypeInfo::tSharedInfo shared_info; 
    158   typedef typename NormalizedType<typename ElementType<T>::type>::type tElement; 
     158  typedef typename NormalizedType<typename ElementType<typename std::conditional<serialization::IsAssociativeContainer<T>::value, void, T>::type>::type>::type tElement; 
    159159  typedef typename std::conditional<std::is_same<typename UnderlyingType<T>::type, T>::value, void, typename UnderlyingType<T>::type>::type tUnderlying; 
    160160  struct tTable 
     
    175175{ 
    176176  static tTypeInfo::tSharedInfo shared_info; 
    177   typedef typename NormalizedType<typename ElementType<T>::type>::type tElement; 
     177  typedef typename NormalizedType<typename ElementType<typename std::conditional<serialization::IsAssociativeContainer<T>::value, void, T>::type>::type>::type tElement; 
    178178  typedef typename std::conditional<std::is_same<typename UnderlyingType<T>::type, T>::value, void, typename UnderlyingType<T>::type>::type tUnderlying; 
    179179  struct tTable 
     
    192192{ 
    193193  static tTypeInfo::tSharedInfo shared_info; 
    194   typedef typename NormalizedType<typename ElementType<T>::type>::type tElement; 
     194  typedef typename NormalizedType<typename ElementType<typename std::conditional<serialization::IsAssociativeContainer<T>::value, void, T>::type>::type>::type tElement; 
    195195  typedef typename std::conditional<std::is_same<typename UnderlyingType<T>::type, T>::value, void, typename UnderlyingType<T>::type>::type tUnderlying; 
    196196  struct tTable 
     
    211211{ 
    212212  static tTypeInfo::tSharedInfo shared_info; 
    213   typedef typename NormalizedType<typename ElementType<T>::type>::type tElement; 
     213  typedef typename NormalizedType<typename ElementType<typename std::conditional<serialization::IsAssociativeContainer<T>::value, void, T>::type>::type>::type tElement; 
    214214  typedef typename std::conditional<std::is_same<typename UnderlyingType<T>::type, T>::value, void, typename UnderlyingType<T>::type>::type tUnderlying; 
    215215  struct tTable 
     
    230230{ 
    231231  static tTypeInfo::tSharedInfo shared_info; 
    232   typedef typename NormalizedType<typename ElementType<T>::type>::type tElement; 
     232  typedef typename NormalizedType<typename ElementType<typename std::conditional<serialization::IsAssociativeContainer<T>::value, void, T>::type>::type>::type tElement; 
    233233  typedef typename std::conditional<std::is_same<typename UnderlyingType<T>::type, T>::value, void, typename UnderlyingType<T>::type>::type tUnderlying; 
    234234  struct tTable 
Note: See TracChangeset for help on using the changeset viewer.