def create_cv_types(base): """implementation details""" return [ base, cpptypes.const_t(base), cpptypes.volatile_t(base), cpptypes.volatile_t(cpptypes.const_t(base)) ]
def remove_pointer(type): """removes pointer from the type definition If type is not pointer type, it will be returned as is. """ nake_type = remove_alias( type ) if not is_pointer( nake_type ): return type elif isinstance( nake_type, cpptypes.volatile_t ) and isinstance( nake_type.base, cpptypes.pointer_t ): return cpptypes.volatile_t( nake_type.base.base ) elif isinstance( nake_type, cpptypes.const_t ) and isinstance( nake_type.base, cpptypes.pointer_t ): return cpptypes.const_t( nake_type.base.base ) elif isinstance( nake_type, cpptypes.volatile_t ) \ and isinstance( nake_type.base, cpptypes.const_t ) \ and isinstance( nake_type.base.base, cpptypes.pointer_t ): return cpptypes.volatile_t( cpptypes.const_t( nake_type.base.base.base ) ) elif isinstance( nake_type.base, cpptypes.calldef_type_t ): return type else: return nake_type.base
def create_cv_types( base ): """implementation details""" return [ base , cpptypes.const_t( base ) , cpptypes.volatile_t( base ) , cpptypes.volatile_t( cpptypes.const_t( base ) ) ]