clang API Documentation

Public Member Functions | Static Public Member Functions
clang::OpaquePtr< PtrTy > Class Template Reference

Wrapper for void* pointer. More...

#include <Ownership.h>

Inheritance diagram for clang::OpaquePtr< PtrTy >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 OpaquePtr ()
template<typename PointeeT >
PointeeT * getPtrTo () const
 Returns plain pointer to the entity pointed by this wrapper.
template<typename PtrT >
PtrT getPtrAs () const
 Returns pointer converted to the specified type.
PtrTy get () const
void set (PtrTy P)
LLVM_EXPLICIT operator bool () const
void * getAsOpaquePtr () const

Static Public Member Functions

static OpaquePtr make (PtrTy P)
static OpaquePtr getFromOpaquePtr (void *P)

Detailed Description

template<class PtrTy>
class clang::OpaquePtr< PtrTy >

Wrapper for void* pointer.

Template Parameters:
PtrTyEither a pointer type like 'T*' or a type that behaves like a pointer.

This is a very simple POD type that wraps a pointer that the Parser doesn't know about but that Sema or another client does. The PtrTy template argument is used to make sure that "Decl" pointers are not compatible with "Type" pointers for example.

Definition at line 45 of file Ownership.h.


Constructor & Destructor Documentation

template<class PtrTy>
clang::OpaquePtr< PtrTy >::OpaquePtr ( ) [inline]

Definition at line 52 of file Ownership.h.

Referenced by clang::OpaquePtr< TemplateName >::getFromOpaquePtr().


Member Function Documentation

template<class PtrTy>
PtrTy clang::OpaquePtr< PtrTy >::get ( ) const [inline]
template<class PtrTy>
void* clang::OpaquePtr< PtrTy >::getAsOpaquePtr ( ) const [inline]
template<class PtrTy>
static OpaquePtr clang::OpaquePtr< PtrTy >::getFromOpaquePtr ( void *  P) [inline, static]

Definition at line 85 of file Ownership.h.

template<class PtrTy>
template<typename PtrT >
PtrT clang::OpaquePtr< PtrTy >::getPtrAs ( ) const [inline]

Returns pointer converted to the specified type.

Template Parameters:
PtrTResult pointer type. There must be implicit conversion from PtrTy to PtrT.

In contrast to getPtrTo, this method allows the return type to be a smart pointer.

Definition at line 70 of file Ownership.h.

template<class PtrTy>
template<typename PointeeT >
PointeeT* clang::OpaquePtr< PtrTy >::getPtrTo ( ) const [inline]

Returns plain pointer to the entity pointed by this wrapper.

Template Parameters:
PointeeTType of pointed entity.

It is identical to getPtrAs<PointeeT*>.

Definition at line 60 of file Ownership.h.

template<class PtrTy>
static OpaquePtr clang::OpaquePtr< PtrTy >::make ( PtrTy  P) [inline, static]

Definition at line 54 of file Ownership.h.

Referenced by clang::Sema::ActOnOpenMPThreadprivateDirective().

template<class PtrTy>
LLVM_EXPLICIT clang::OpaquePtr< PtrTy >::operator bool ( ) const [inline]

Definition at line 82 of file Ownership.h.

template<class PtrTy>
void clang::OpaquePtr< PtrTy >::set ( PtrTy  P) [inline]

Definition at line 78 of file Ownership.h.

Referenced by clang::OpaquePtr< TemplateName >::make().


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