class TrailingObjects

Declaration

template <typename BaseTy, typename... TrailingTys>
class TrailingObjects { /* full declaration omitted */ };

Description

See the file comment for details on the usage of the TrailingObjects type.

Declared at: llvm/include/llvm/Support/TrailingObjects.h:229

Templates

BaseTy
TrailingTys

Method Overview

  • public template <typename... Tys>static constexpr typename std::enable_if<std::is_same<Foo<TrailingTys...>, Foo<Tys...>>::value, size_t>::type additionalSizeToAlloc(typename trailing_objects_internal::ExtractSecondType<TrailingTys, size_t>::type... Counts)
  • public template <typename T>const T * getTrailingObjects() const
  • public template <typename T>T * getTrailingObjects()
  • public template <typename... Tys>static constexpr typename std::enable_if<std::is_same<Foo<TrailingTys...>, Foo<Tys...>>::value, size_t>::type totalSizeToAlloc(typename trailing_objects_internal::ExtractSecondType<TrailingTys, size_t>::type... Counts)

Methods

template <typename... Tys>
static constexpr typename std::enable_if<
    std::is_same<Foo<TrailingTys...>,
                 Foo<Tys...>>::value,
    size_t>::type
additionalSizeToAlloc(
    typename trailing_objects_internal::
        ExtractSecondType<TrailingTys,
                          size_t>::type... Counts)

Description

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.

Declared at: llvm/include/llvm/Support/TrailingObjects.h:331

Templates

Tys

Parameters

typename trailing_objects_internal:: ExtractSecondType<TrailingTys, size_t>::type... Counts

template <typename T>
const T* getTrailingObjects() const

Description

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.

Declared at: llvm/include/llvm/Support/TrailingObjects.h:302

Templates

T

template <typename T>
T* getTrailingObjects()

Description

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.

Declared at: llvm/include/llvm/Support/TrailingObjects.h:314

Templates

T

template <typename... Tys>
static constexpr typename std::enable_if<
    std::is_same<Foo<TrailingTys...>,
                 Foo<Tys...>>::value,
    size_t>::type
totalSizeToAlloc(
    typename trailing_objects_internal::
        ExtractSecondType<TrailingTys,
                          size_t>::type... Counts)

Description

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.

Declared at: llvm/include/llvm/Support/TrailingObjects.h:343

Templates

Tys

Parameters

typename trailing_objects_internal:: ExtractSecondType<TrailingTys, size_t>::type... Counts