Audacity 3.2.0
|
#include <Composite.h>
Public Types | |
using | BaseType = Base |
Public Types inherited from Composite::Base< Component, ComponentPointer, ComponentArgs > | |
using | value_type = ComponentPointer |
using | Items = std::vector< value_type > |
Public Member Functions | |
template<typename Arg > | |
auto | push_back (Arg &&arg) -> std::enable_if_t< Traits< Base, Derived > ::template enables_item_type_v< Arg >, void > |
void | push_back (typename Base::value_type arg) |
template<typename... Items> | |
Builder (BaseArgs... args, Items &&... items) | |
Variadic constructor. More... | |
template<typename InputIterator , typename Arg = decltype(*std::declval<InputIterator>()), typename ItemBuilder = decltype(Traits<Base, Derived>::ItemBuilder), typename sfinae = std::enable_if_t<std::is_invocable_v<ItemBuilder, Arg>>> | |
Builder (BaseArgs... args, InputIterator begin, InputIterator end) | |
Iterator range constructor, with default transformer. More... | |
template<typename InputIterator , typename Transformer , typename Arg = decltype(*std::declval<InputIterator>()), typename ItemBuilder = decltype(Traits<Base, Derived>::ItemBuilder), typename sfinae = std::enable_if_t<std::is_invocable_v< ItemBuilder, std::invoke_result_t<Transformer, Arg>>>> | |
Builder (BaseArgs... args, InputIterator begin, InputIterator end, Transformer transformer) | |
Iterator range constructor, with explicit transformer. More... | |
Public Member Functions inherited from Composite::Base< Component, ComponentPointer, ComponentArgs > | |
Base (ComponentArgs... args) | |
Base (const Base &)=delete | |
Base & | operator= (const Base &)=delete |
auto | begin () const |
auto | end () const |
auto | cbegin () const |
auto | cend () const |
auto | rbegin () const |
auto | rend () const |
auto | crbegin () const |
auto | crend () const |
void | push_back (value_type ptr) |
auto | size () const noexcept |
bool | empty () const |
Private Member Functions | |
void | push_back (value_type ptr) |
Additional Inherited Members | |
Protected Attributes inherited from Composite::Base< Component, ComponentPointer, ComponentArgs > | |
Items | items |
Specialization of Traits can wrap the push_back of the base class with a type-erasing gate-keeper, which can also do other value transformations
This class comes between Base and Derived in the inheritance graph
Definition at line 99 of file Composite.h.
using Composite::Builder< Base, Derived, BaseArgs >::BaseType = Base |
Definition at line 101 of file Composite.h.
|
inline |
Variadic constructor.
Definition at line 133 of file Composite.h.
References forward, Composite::Base< Component, ComponentPointer, ComponentArgs >::items, and Composite::Builder< Base, Derived, BaseArgs >::push_back().
|
inline |
Iterator range constructor, with default transformer.
Definition at line 144 of file Composite.h.
References forward.
|
inline |
Iterator range constructor, with explicit transformer.
Definition at line 157 of file Composite.h.
References details::begin(), details::end(), and forward.
|
inline |
Define a push_back, which makes this work also with back_inserter Traits can determine whether to enable the overloads
Definition at line 105 of file Composite.h.
References Composite::Base< Component, ComponentPointer, ComponentArgs >::push_back().
Referenced by anonymous_namespace{MenuHelper.cpp}::AddEffectMenuItemGroup(), anonymous_namespace{MenuHelper.cpp}::AddGroupedEffectMenuItems(), Composite::Builder< Base, Derived, BaseArgs >::Builder(), anonymous_namespace{MenuHelper.cpp}::MakeAddGroupItems(), MenuHelper::PopulateEffectsMenu(), and anonymous_namespace{BatchProcessDialog.cpp}::PopulateMacrosMenu().
|
inline |
This non-template overload is also needed so overload resolution does not select the private inherited function
Definition at line 116 of file Composite.h.
References Composite::Base< Component, ComponentPointer, ComponentArgs >::push_back().
|
inlineprivate |
Definition at line 62 of file Composite.h.