LLVM 22.0.0git
|
See the file comment for details on the usage of the TrailingObjects type. More...
#include "llvm/Support/TrailingObjects.h"
Classes | |
struct | FixedSizeStorage |
A type where its with_counts template member has a ::type member suitable for use as uninitialized storage for an object with the given trailing object counts. More... | |
class | FixedSizeStorageOwner |
A type that acts as the owner for an object placed into fixed storage. More... |
Public Types | |
using | FirstTrailingType |
Public Member Functions | |
template<typename T> | |
const T * | getTrailingObjects () const |
Returns a pointer to the trailing object array of the given type (which must be one of those specified in the class template). | |
template<typename T> | |
T * | getTrailingObjects () |
Returns a pointer to the trailing object array of the given type (which must be one of those specified in the class template). | |
const FirstTrailingType * | getTrailingObjects () const |
FirstTrailingType * | getTrailingObjects () |
template<typename T> | |
MutableArrayRef< T > | getTrailingObjects (size_t N) |
template<typename T> | |
ArrayRef< T > | getTrailingObjects (size_t N) const |
MutableArrayRef< FirstTrailingType > | getTrailingObjects (size_t N) |
ArrayRef< FirstTrailingType > | getTrailingObjects (size_t N) const |
template<typename T> | |
const T * | getTrailingObjectsNonStrict () const |
template<typename T> | |
T * | getTrailingObjectsNonStrict () |
template<typename T> | |
MutableArrayRef< T > | getTrailingObjectsNonStrict (size_t N) |
template<typename T> | |
ArrayRef< T > | getTrailingObjectsNonStrict (size_t N) const |
TrailingObjects ()=default | |
TrailingObjects (const TrailingObjects &)=delete | |
TrailingObjects (TrailingObjects &&)=delete | |
TrailingObjects & | operator= (const TrailingObjects &)=delete |
TrailingObjects & | operator= (TrailingObjects &&)=delete |
Static Public Member Functions | |
template<typename... Tys> | |
static constexpr std::enable_if_t< std::is_same_v< Foo< TrailingTys... >, Foo< Tys... > >, size_t > | additionalSizeToAlloc (typename trailing_objects_internal::ExtractSecondType< TrailingTys, size_t >::type... Counts) |
Returns the size of the trailing data, if an object were allocated with the given counts (The counts are in the same order as the template arguments). | |
template<typename... Tys> | |
static constexpr std::enable_if_t< std::is_same_v< Foo< TrailingTys... >, Foo< Tys... > >, size_t > | totalSizeToAlloc (typename trailing_objects_internal::ExtractSecondType< TrailingTys, size_t >::type... Counts) |
Returns the total size of an object if it were allocated with the given trailing object counts. |
Friends | |
template<int A, typename B, typename T, typename P, typename... M> | |
class | trailing_objects_internal::TrailingObjectsImpl |
See the file comment for details on the usage of the TrailingObjects type.
Definition at line 196 of file TrailingObjects.h.
using llvm::TrailingObjects< BaseTy, TrailingTys >::FirstTrailingType |
Definition at line 295 of file TrailingObjects.h.
|
default |
Referenced by operator=(), operator=(), TrailingObjects(), and TrailingObjects().
|
delete |
References TrailingObjects().
|
delete |
References TrailingObjects().
|
inlinestaticconstexpr |
Returns the size of the trailing data, if an object were allocated with the given counts (The counts are in the same order as the template arguments).
This does not include the size of the base object. The template arguments must be the same as those used in the class; they are supplied here redundantly only so that it's clear what the counts are counting in callers.
Definition at line 369 of file TrailingObjects.h.
|
inline |
Returns a pointer to the trailing object array of the given type (which must be one of those specified in the class template).
The array may have zero or more elements in it.
Definition at line 286 of file TrailingObjects.h.
References T.
|
inline |
Definition at line 308 of file TrailingObjects.h.
|
inline |
Returns a pointer to the trailing object array of the given type (which must be one of those specified in the class template).
The array may have zero or more elements in it.
Definition at line 274 of file TrailingObjects.h.
References T.
Referenced by getTrailingObjects(), and getTrailingObjects().
|
inline |
Definition at line 298 of file TrailingObjects.h.
|
inline |
Definition at line 319 of file TrailingObjects.h.
References getTrailingObjects(), and N.
|
inline |
Definition at line 327 of file TrailingObjects.h.
References getTrailingObjects(), and N.
|
inline |
Definition at line 323 of file TrailingObjects.h.
References getTrailingObjects(), and N.
|
inline |
Definition at line 331 of file TrailingObjects.h.
References getTrailingObjects(), and N.
|
inline |
Definition at line 344 of file TrailingObjects.h.
References T.
|
inline |
Definition at line 337 of file TrailingObjects.h.
References T.
Referenced by getTrailingObjectsNonStrict(), and getTrailingObjectsNonStrict().
|
inline |
Definition at line 351 of file TrailingObjects.h.
References getTrailingObjectsNonStrict(), and N.
|
inline |
Definition at line 356 of file TrailingObjects.h.
References getTrailingObjectsNonStrict(), and N.
|
delete |
References TrailingObjects().
|
delete |
References TrailingObjects().
|
inlinestaticconstexpr |
Returns the total size of an object if it were allocated with the given trailing object counts.
This is the same as additionalSizeToAlloc, except it does include the size of the base object.
Definition at line 381 of file TrailingObjects.h.
Referenced by llvm::ConstantRangeListAttributeImpl::totalSizeToAlloc(), and llvm::StringAttributeImpl::totalSizeToAlloc().
|
friend |
Definition at line 202 of file TrailingObjects.h.