+2008-12-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/38596
+ * include/tr1_impl/function (function<>::target,
+ function<>::target_type): Provide only when __GXX_RTTI is defined.
+ (_Function_base::_M_manager, _Ref_manager<>::_M_manager,
+ _Function_handler<void(_ArgTypes...), _Member _Class::*>::_M_manager):
+ Adjust.
+
2008-12-19 Ben Elliston <bje@au.ibm.com>
* acinclude.m4: Guard a variable test against an empty string.
{
switch (__op)
{
+#ifdef __GXX_RTTI
case __get_type_info:
__dest._M_access<const type_info*>() = &typeid(_Functor);
break;
-
+#endif
case __get_functor_ptr:
__dest._M_access<_Functor*>() = _M_get_pointer(__source);
break;
{
switch (__op)
{
+#ifdef __GXX_RTTI
case __get_type_info:
__dest._M_access<const type_info*>() = &typeid(_Functor);
break;
-
+#endif
case __get_functor_ptr:
__dest._M_access<_Functor*>() = *_Base::_M_get_pointer(__source);
return is_const<_Functor>::value;
{
switch (__op)
{
+#ifdef __GXX_RTTI
case __get_type_info:
__dest._M_access<const type_info*>() = &typeid(_Functor);
break;
-
+#endif
case __get_functor_ptr:
__dest._M_access<_Functor*>() =
&_Base::_M_get_pointer(__source)->__value;
* stored by @c this.
*/
_Res operator()(_ArgTypes... __args) const;
-
+
+#ifdef __GXX_RTTI
// [3.7.2.5] function target access
/**
* @brief Determine the type of the target of this function object
/// @overload
template<typename _Functor> const _Functor* target() const;
-
+#endif
+
private:
// [3.7.2.6] undefined operators
template<typename _Function>
return _M_invoker(_M_functor, __args...);
}
+#ifdef __GXX_RTTI
template<typename _Res, typename... _ArgTypes>
const type_info&
function<_Res(_ArgTypes...)>::
else
return 0;
}
+#endif
// [3.7.2.7] null pointer comparisons