def get_container_or_none(self, type_):
type_ = type_traits.remove_alias(type_)<EOL>type_ = type_traits.remove_cv(type_)<EOL>utils.loggers.queries_engine.debug(<EOL>"<STR_LIT>", type_)<EOL>if isinstance(type_, cpptypes.declarated_t):<EOL><INDENT>cls_declaration = type_traits.remove_alias(type_.declaration)<EOL><DEDENT>elif isinstance(type_, class_declaration.class_t):<EOL><INDENT>cls_declaration = type_<EOL><DEDENT>elif isinstance(type_, class_declaration.class_declaration_t):<EOL><INDENT>cls_declaration = type_<EOL><DEDENT>else:<EOL><INDENT>utils.loggers.queries_engine.debug(<EOL>"<STR_LIT>")<EOL>return<EOL><DEDENT>if not cls_declaration.name.startswith(self.name() + '<STR_LIT:<>'):<EOL><INDENT>utils.loggers.queries_engine.debug(<EOL>"<STR_LIT>" +<EOL>"<STR_LIT>" + self.name() + '<STR_LIT>')<EOL>return<EOL><DEDENT>decl = cls_declaration<EOL>if isinstance(type_, class_declaration.class_declaration_t):<EOL><INDENT>is_ns = isinstance(type_.parent, namespace.namespace_t)<EOL>if is_ns and type_.parent.name == "<STR_LIT>":<EOL><INDENT>decl = cls_declaration.parent<EOL><DEDENT><DEDENT>elif isinstance(type_, cpptypes.declarated_t):<EOL><INDENT>is_ns = isinstance(type_.declaration.parent, namespace.namespace_t)<EOL>if is_ns and type_.declaration.parent.name == "<STR_LIT>":<EOL><INDENT>decl = cls_declaration.parent<EOL><DEDENT><DEDENT>for ns in std_namespaces:<EOL><INDENT>if traits_impl_details.impl_details.is_defined_in_xxx(ns, decl):<EOL><INDENT>utils.loggers.queries_engine.debug(<EOL>"<STR_LIT>" +<EOL>cls_declaration.name)<EOL>return cls_declaration<EOL><DEDENT><DEDENT>utils.loggers.queries_engine.debug(<EOL>"<STR_LIT>")<EOL>
Returns reference to the class declaration or None.