24 #ifndef PPL_Temp_defs_hh
25 #define PPL_Temp_defs_hh 1
32 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
33 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
79 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
80 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
105 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
106 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
108 template <
typename T>
128 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
129 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
131 template <
typename T,
typename Enable =
void>
134 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
135 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
137 template <
typename T>
142 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
143 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
145 template <
typename T>
155 #endif // !defined(PPL_Temp_defs_hh)
A structure for the efficient handling of temporaries.
~Temp_Reference_Holder()
Destructor.
T & item()
Returns the value of the held item.
T item_
The encapsulated item.
T & item()
Returns a reference to the held item.
Temp_Item< T > & held
The held item, encapsulated.
Temp_Value_Holder & operator=(const Temp_Value_Holder &)
Assignment operator: private and intentionally not implemented.
Free_List & operator=(const Free_List &)
An holder for a reference to a temporary object.
A pool of temporary items of type T.
Temp_Value_Holder()
Constructs a fake holder.
An (fake) holder for the value of a temporary object.
Temp_Item()
Default constructor.
T & item()
Returns a reference to the encapsulated item.
The entire library is confined to this namespace.
Temp_Item * next
Pointer to the next item in the free list.
Temp_Item & operator=(const Temp_Item &)
Assignment operator: private and intentionally not implemented.
static void release(Temp_Item &p)
Releases the temporary item p.
static Temp_Item *& free_list_ref()
Head of the free list.
A class that provides a type member called type equivalent to T if and only if b is true...
static Temp_Item & obtain()
Obtains a reference to a temporary item.
Temp_Reference_Holder & operator=(const Temp_Reference_Holder &)
Assignment operator: private and intentionally not implemented.
Temp_Reference_Holder()
Constructs an holder holding a dirty temp.