LLDB mainline
Public Member Functions | Private Attributes | List of all members
lldb_private::TypeSystemClang::TemplateParameterInfos Class Reference

#include <TypeSystemClang.h>

Collaboration diagram for lldb_private::TypeSystemClang::TemplateParameterInfos:
Collaboration graph
[legend]

Public Member Functions

 TemplateParameterInfos ()=default
 
 TemplateParameterInfos (llvm::ArrayRef< const char * > names_in, llvm::ArrayRef< clang::TemplateArgument > args_in)
 
 TemplateParameterInfos (TemplateParameterInfos const &)=delete
 
 TemplateParameterInfos (TemplateParameterInfos &&)=delete
 
TemplateParameterInfosoperator= (TemplateParameterInfos const &)=delete
 
TemplateParameterInfosoperator= (TemplateParameterInfos &&)=delete
 
 ~TemplateParameterInfos ()=default
 
bool IsValid () const
 
bool IsEmpty () const
 
size_t Size () const
 
llvm::ArrayRef< clang::TemplateArgument > GetArgs () const
 
llvm::ArrayRef< const char * > GetNames () const
 
clang::TemplateArgument const & Front () const
 
void InsertArg (char const *name, clang::TemplateArgument arg)
 
bool hasParameterPack () const
 
TemplateParameterInfos const & GetParameterPack () const
 
TemplateParameterInfosGetParameterPack ()
 
llvm::ArrayRef< clang::TemplateArgument > GetParameterPackArgs () const
 
bool HasPackName () const
 
llvm::StringRef GetPackName () const
 
void SetPackName (char const *name)
 
void SetParameterPack (std::unique_ptr< TemplateParameterInfos > args)
 

Private Attributes

llvm::SmallVector< const char *, 2 > names
 Element 'names[i]' holds the template argument name of 'args[i]'.
 
llvm::SmallVector< clang::TemplateArgument, 2 > args
 
const char * pack_name = nullptr
 
std::unique_ptr< TemplateParameterInfospacked_args
 

Detailed Description

Definition at line 332 of file TypeSystemClang.h.

Constructor & Destructor Documentation

◆ TemplateParameterInfos() [1/4]

lldb_private::TypeSystemClang::TemplateParameterInfos::TemplateParameterInfos ( )
default

◆ TemplateParameterInfos() [2/4]

lldb_private::TypeSystemClang::TemplateParameterInfos::TemplateParameterInfos ( llvm::ArrayRef< const char * >  names_in,
llvm::ArrayRef< clang::TemplateArgument >  args_in 
)
inline

Definition at line 335 of file TypeSystemClang.h.

References names.

◆ TemplateParameterInfos() [3/4]

lldb_private::TypeSystemClang::TemplateParameterInfos::TemplateParameterInfos ( TemplateParameterInfos const &  )
delete

◆ TemplateParameterInfos() [4/4]

lldb_private::TypeSystemClang::TemplateParameterInfos::TemplateParameterInfos ( TemplateParameterInfos &&  )
delete

◆ ~TemplateParameterInfos()

lldb_private::TypeSystemClang::TemplateParameterInfos::~TemplateParameterInfos ( )
default

Member Function Documentation

◆ Front()

clang::TemplateArgument const & lldb_private::TypeSystemClang::TemplateParameterInfos::Front ( ) const
inline

Definition at line 364 of file TypeSystemClang.h.

References args.

Referenced by ClassTemplateAllowsToInstantiationArgs(), and CreateTemplateParameterList().

◆ GetArgs()

llvm::ArrayRef< clang::TemplateArgument > lldb_private::TypeSystemClang::TemplateParameterInfos::GetArgs ( ) const
inline

◆ GetNames()

llvm::ArrayRef< const char * > lldb_private::TypeSystemClang::TemplateParameterInfos::GetNames ( ) const
inline

Definition at line 362 of file TypeSystemClang.h.

References names.

Referenced by CreateTemplateParameterList().

◆ GetPackName()

llvm::StringRef lldb_private::TypeSystemClang::TemplateParameterInfos::GetPackName ( ) const
inline

Definition at line 395 of file TypeSystemClang.h.

References HasPackName(), and pack_name.

Referenced by CreateTemplateParameterList().

◆ GetParameterPack() [1/2]

TemplateParameterInfos & lldb_private::TypeSystemClang::TemplateParameterInfos::GetParameterPack ( )
inline

Definition at line 383 of file TypeSystemClang.h.

References packed_args.

◆ GetParameterPack() [2/2]

TemplateParameterInfos const & lldb_private::TypeSystemClang::TemplateParameterInfos::GetParameterPack ( ) const
inline

◆ GetParameterPackArgs()

llvm::ArrayRef< clang::TemplateArgument > lldb_private::TypeSystemClang::TemplateParameterInfos::GetParameterPackArgs ( ) const
inline

◆ HasPackName()

bool lldb_private::TypeSystemClang::TemplateParameterInfos::HasPackName ( ) const
inline

Definition at line 393 of file TypeSystemClang.h.

References pack_name.

Referenced by CreateTemplateParameterList(), and GetPackName().

◆ hasParameterPack()

bool lldb_private::TypeSystemClang::TemplateParameterInfos::hasParameterPack ( ) const
inline

◆ InsertArg()

void lldb_private::TypeSystemClang::TemplateParameterInfos::InsertArg ( char const *  name,
clang::TemplateArgument  arg 
)
inline

Definition at line 369 of file TypeSystemClang.h.

References args, and names.

Referenced by DWARFASTParserClang::ParseTemplateDIE().

◆ IsEmpty()

bool lldb_private::TypeSystemClang::TemplateParameterInfos::IsEmpty ( ) const
inline

◆ IsValid()

bool lldb_private::TypeSystemClang::TemplateParameterInfos::IsValid ( ) const
inline

Definition at line 349 of file TypeSystemClang.h.

References args, names, pack_name, and packed_args.

Referenced by lldb_private::TypeSystemClang::ParseClassTemplateDecl().

◆ operator=() [1/2]

TemplateParameterInfos & lldb_private::TypeSystemClang::TemplateParameterInfos::operator= ( TemplateParameterInfos &&  )
delete

◆ operator=() [2/2]

TemplateParameterInfos & lldb_private::TypeSystemClang::TemplateParameterInfos::operator= ( TemplateParameterInfos const &  )
delete

◆ SetPackName()

void lldb_private::TypeSystemClang::TemplateParameterInfos::SetPackName ( char const *  name)
inline

Definition at line 400 of file TypeSystemClang.h.

References pack_name.

Referenced by DWARFASTParserClang::ParseTemplateDIE().

◆ SetParameterPack()

void lldb_private::TypeSystemClang::TemplateParameterInfos::SetParameterPack ( std::unique_ptr< TemplateParameterInfos args)
inline

Definition at line 402 of file TypeSystemClang.h.

References args, and packed_args.

Referenced by DWARFASTParserClang::ParseTemplateDIE().

◆ Size()

size_t lldb_private::TypeSystemClang::TemplateParameterInfos::Size ( ) const
inline

Member Data Documentation

◆ args

llvm::SmallVector<clang::TemplateArgument, 2> lldb_private::TypeSystemClang::TemplateParameterInfos::args
private

Definition at line 410 of file TypeSystemClang.h.

Referenced by Front(), GetArgs(), InsertArg(), IsEmpty(), IsValid(), SetParameterPack(), and Size().

◆ names

llvm::SmallVector<const char *, 2> lldb_private::TypeSystemClang::TemplateParameterInfos::names
private

Element 'names[i]' holds the template argument name of 'args[i]'.

Definition at line 409 of file TypeSystemClang.h.

Referenced by GetNames(), InsertArg(), IsValid(), and TemplateParameterInfos().

◆ pack_name

const char* lldb_private::TypeSystemClang::TemplateParameterInfos::pack_name = nullptr
private

Definition at line 412 of file TypeSystemClang.h.

Referenced by GetPackName(), HasPackName(), IsValid(), and SetPackName().

◆ packed_args

std::unique_ptr<TemplateParameterInfos> lldb_private::TypeSystemClang::TemplateParameterInfos::packed_args
private

The documentation for this class was generated from the following file: