def is_elaborated(type_):
nake_type = remove_alias(type_)<EOL>if isinstance(nake_type, cpptypes.elaborated_t):<EOL><INDENT>return True<EOL><DEDENT>elif isinstance(nake_type, cpptypes.reference_t):<EOL><INDENT>return is_elaborated(nake_type.base)<EOL><DEDENT>elif isinstance(nake_type, cpptypes.pointer_t):<EOL><INDENT>return is_elaborated(nake_type.base)<EOL><DEDENT>elif isinstance(nake_type, cpptypes.volatile_t):<EOL><INDENT>return is_elaborated(nake_type.base)<EOL><DEDENT>elif isinstance(nake_type, cpptypes.const_t):<EOL><INDENT>return is_elaborated(nake_type.base)<EOL><DEDENT>return False<EOL>
returns True, if type represents C++ elaborated type, False otherwise