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)
 
   81    { 
return _ToType(
const_cast<typename _Caster<_ToType>::
 
   82                     type
>(__arg.get())); }
 
   84  template<
typename _ToType, 
typename _FromType>
 
   86    __reinterpret_pointer_cast(
const _FromType& __arg)
 
   87    { 
return _ToType(
reinterpret_cast<typename _Caster<_ToType>::
 
   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)
 
  109    { 
return _ToType(
const_cast<typename _Caster<_ToType>::
 
  112  template<
typename _ToType, 
typename _FromType>
 
  114    __reinterpret_pointer_cast(_FromType* __arg)
 
  115    { 
return _ToType(
reinterpret_cast<typename _Caster<_ToType>::
 
  118_GLIBCXX_END_NAMESPACE_VERSION
 
GNU extensions for public use.
_ToType __static_pointer_cast(const _FromType &__arg)