16 #ifndef dealii_smartpointer_h 17 #define dealii_smartpointer_h 67 template <
typename T,
typename P =
void>
146 operator T *()
const;
203 const std::string
id;
216 template <
typename T,
typename P>
219 ,
id(typeid(P).name())
225 template <
typename T,
typename P>
228 ,
id(typeid(P).name())
237 template <
typename T,
typename P>
249 template <
typename T,
typename P>
262 template <
typename T,
typename P>
274 template <
typename T,
typename P>
283 template <
typename T,
typename P>
298 template <
typename T,
typename P>
317 template <
typename T,
typename P>
330 t =
static_cast<T *
>(tt);
338 template <
typename T,
typename P>
350 t =
static_cast<T *
>(tt);
358 template <
typename T,
typename P>
366 template <
typename T,
typename P>
371 ExcMessage(
"The object pointed to is not valid anymore."));
377 template <
typename T,
typename P>
382 ExcMessage(
"The object pointed to is not valid anymore."));
388 template <
typename T,
typename P>
404 template <
typename T,
typename P>
419 template <
typename T,
typename P>
442 template <
typename T,
typename P,
class Q>
458 template <
typename T,
typename P>
474 template <
typename T,
typename P>
std::atomic< bool > pointed_to_object_is_alive
void swap(SmartPointer< T, P > &t1, SmartPointer< T, Q > &t2)
static ::ExceptionBase & ExcNotInitialized()
static ::ExceptionBase & ExcMessage(std::string arg1)
#define Assert(cond, exc)
#define DEAL_II_NAMESPACE_CLOSE
void swap(SmartPointer< T, Q > &tt)
SmartPointer< T, P > & operator=(T *tt)
#define DEAL_II_NAMESPACE_OPEN
std::size_t memory_consumption() const
static ::ExceptionBase & ExcInternalError()