30#ifndef _GLIBCXX_CAST_H
31#define _GLIBCXX_CAST_H 1
33namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
35_GLIBCXX_BEGIN_NAMESPACE_VERSION
51 template<
typename _ToType>
53 {
typedef typename _ToType::element_type* type; };
55 template<
typename _ToType>
57 {
typedef _ToType*
type; };
66 template<
typename _ToType,
typename _FromType>
70 type>(__arg.get())); }
72 template<
typename _ToType,
typename _FromType>
74 __dynamic_pointer_cast(
const _FromType& __arg)
75 {
return _ToType(
dynamic_cast<typename _Caster<_ToType>::
76 type
>(__arg.get())); }
78 template<
typename _ToType,
typename _FromType>
80 __const_pointer_cast(
const _FromType& __arg)
82 type>(__arg.get())); }
84 template<
typename _ToType,
typename _FromType>
86 __reinterpret_pointer_cast(
const _FromType& __arg)
88 type>(__arg.get())); }
94 template<
typename _ToType,
typename _FromType>
100 template<
typename _ToType,
typename _FromType>
102 __dynamic_pointer_cast(_FromType* __arg)
103 {
return _ToType(
dynamic_cast<typename _Caster<_ToType>::
106 template<
typename _ToType,
typename _FromType>
108 __const_pointer_cast(_FromType* __arg)
112 template<
typename _ToType,
typename _FromType>
114 __reinterpret_pointer_cast(_FromType* __arg)
118_GLIBCXX_END_NAMESPACE_VERSION
GNU extensions for public use.
_ToType __static_pointer_cast(const _FromType &__arg)