Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/include/cassert

    rdafe9e1 rf685679  
    1010// Created On       : Thu Aug 18 13:19:26 2016
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Mon Jun  3 13:11:00 2017
    13 // Update Count     : 18
     12// Last Modified On : Thu May 23 15:30:00 2017
     13// Update Count     : 17
    1414//
    1515
     
    4343#endif
    4444
    45 template<typename T, typename U>
     45enum StrictAllowNull {NonNull, AllowNull};
     46
     47template<typename T, StrictAllowNull nullable = NonNull, typename U>
    4648static inline T strict_dynamic_cast( const U & src ) {
     49        if (nullable == AllowNull && src == nullptr) {
     50                return nullptr;
     51        }
    4752        assert(src);
    4853        T ret = dynamic_cast<T>(src);
    4954        assertf(ret, "%s", toString(src).c_str());
    5055        return ret;
    51 }
    52 
    53 template<typename T, decltype(nullptr) null, typename U>
    54 static inline T strict_dynamic_cast( const U & src ) {
    55         return src ? strict_dynamic_cast<T, U>( src ) : nullptr;
    5656}
    5757
Note: See TracChangeset for help on using the changeset viewer.