//===--- SemaTemplateInstantiateDecl.cpp - C++ Template Decl Instantiation ===///// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.//===----------------------------------------------------------------------===///// This file implements C++ template instantiation for declarations.////===----------------------------------------------------------------------===/#include"Sema.h"#include"clang/AST/ASTConsumer.h"#include"clang/AST/ASTContext.h"#include"clang/AST/DeclTemplate.h"#include"clang/AST/DeclVisitor.h"#include"clang/AST/Expr.h"#include"clang/Basic/PrettyStackTrace.h"#include"clang/Lex/Preprocessor.h"#include"llvm/Support/Compiler.h"usingnamespaceclang;namespace{classVISIBILITY_HIDDENTemplateDeclInstantiator:publicDeclVisitor<TemplateDeclInstantiator,Decl*>{Sema&SemaRef;DeclContext*Owner;constMultiLevelTemplateArgumentList&TemplateArgs;public:typedefSema::OwningExprResultOwningExprResult;TemplateDeclInstantiator(Sema