def remove_pointer(type_):
nake_type = remove_alias(type_)<EOL>if not is_pointer(nake_type):<EOL><INDENT>return type_<EOL><DEDENT>elif isinstance(nake_type, cpptypes.volatile_t) andisinstance(nake_type.base, cpptypes.pointer_t):<EOL><INDENT>return cpptypes.volatile_t(nake_type.base.base)<EOL><DEDENT>elif isinstance(nake_type, cpptypes.const_t) andisinstance(nake_type.base, cpptypes.pointer_t):<EOL><INDENT>return cpptypes.const_t(nake_type.base.base)<EOL><DEDENT>elif isinstance(nake_type, cpptypes.volatile_t)and isinstance(nake_type.base, cpptypes.const_t)and isinstance(nake_type.base.base, cpptypes.pointer_t):<EOL><INDENT>return (<EOL>cpptypes.volatile_t(cpptypes.const_t(nake_type.base.base.base))<EOL>)<EOL><DEDENT>return nake_type.base<EOL>
removes pointer from the type definition

    If type is not pointer type, it will be returned as is.