This is about the same function but has been changed to this definition:
template < typename T >
typename T::const_iterator first_pipe(T const& cont)
{
namespace l = boost::lambda;
typedef esi::metafunc::dereference_type<typename
T::value_type>::type value_type;
return std::find_if(cont.begin(), cont.end(),
(l::bind(&value_type::GetType, *(l::_1))) == DT_PIPE);
}
Reason being that the function would work ok with containers holding
raw pointers but couldn't resolve for smart pointers like shared_ptr.
This way works for both, but with shared_ptr I get the warning pasted
at the end of this message. Gnu handles it fine even with -Wall and
-pedantic. Is there a better way to do what I'm doing and get rid of
the warning or do I just need to supress it?
Thanks.
1>c:\boost\include\boost-1_33_1\boost\lambda\detail\operator_return_type_traits.hpp(240)
: warning C4181: qualifier applied to reference type; ignored
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\lambda_traits.hpp(45)
: see reference to class template instantiation
'boost::lambda::detail::contentsof_type<A>' being compiled
1> with
1> [
1> A=const boost::shared_ptr
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\lambda_traits.hpp(53)
: see reference to class template instantiation
'boost::lambda::detail::IF_type_<T>' being compiled
1> with
1> [
1> T=boost::lambda::detail::contentsof_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\operator_return_type_traits.hpp(314)
: see reference to class template instantiation
'boost::lambda::detail::IF_type' being compiled
1> with
1> [
1> C=true,
1> T=boost::lambda::detail::contentsof_type>,
1> E=boost::lambda::detail::identity_mapping
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\return_type_traits.hpp(88)
: see reference to class template instantiation
'boost::lambda::return_type_1' being compiled
1> with
1> [
1> Act=boost::lambda::other_action,
1> A=const boost::shared_ptr &
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\operator_lambda_func_base.hpp(79)
: see reference to class template instantiation
'boost::lambda::return_type_1_prot' being compiled
1> with
1> [
1> Act=boost::lambda::other_action,
1> A=const boost::shared_ptr &
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\operator_lambda_func_base.hpp(248)
: see reference to class template instantiation
'boost::lambda::detail::unary_rt' being compiled
1> with
1> [
1> Action=boost::lambda::other_action,
1> Bound=boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,
1> Open=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\lambda_functor_base.hpp(191)
: see reference to class template instantiation
'boost::lambda::lambda_functor_base::sig<SigArgs>' being
compiled
1> with
1> [
1> Act=boost::lambda::other_action,
1> Args=boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,
1> SigArgs=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\lambda_functor_base.hpp(197)
: see reference to class template instantiation
'boost::lambda::detail::deduce_non_ref_argument_types_'
being compiled
1> with
1> [
1> Args=boost::tuples::cons,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::tuples::detail::map_tuple_to_cons::type>,
1> SigArgs=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\lambda_functor_base.hpp(225)
: see reference to class template instantiation
'boost::lambda::detail::deduce_non_ref_argument_types_'
being compiled
1> with
1> [
1> Args=boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>,
1> SigArgs=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\lambda_functor_base.hpp(398)
: see reference to class template instantiation
'boost::lambda::detail::deduce_non_ref_argument_types'
being compiled
1> with
1> [
1> Args=boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>,
1> SigArgs=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\lambda_functor_base.hpp(164)
: see reference to class template instantiation
'boost::lambda::lambda_functor_base::sig<SigArgs>' being
compiled
1> with
1> [
1> Act=boost::lambda::action<2,boost::lambda::function_action<2>>,
1> Args=boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>,
1> SigArgs=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\lambda_functor_base.hpp(213)
: see reference to class template instantiation
'boost::lambda::detail::deduce_argument_types_' being
compiled
1> with
1> [
1> Args=boost::tuples::tuple>,boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>>>,const
DT_TYPE,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,
1> SigArgs=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\operator_lambda_func_base.hpp(60)
: see reference to class template instantiation
'boost::lambda::detail::deduce_argument_types' being
compiled
1> with
1> [
1> Args=boost::tuples::tuple>,boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>>>,const
DT_TYPE,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,
1> SigArgs=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\boost\include\boost-1_33_1\boost\lambda\detail\operator_lambda_func_base.hpp(222)
: see reference to class template instantiation
'boost::lambda::detail::binary_rt' being compiled
1> with
1> [
1> Action=boost::lambda::relational_action,
1> Bound=boost::tuples::tuple>,boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>>>,const
DT_TYPE,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,
1> Open=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\program files\microsoft visual studio
8\vc\include\algorithm(87) : see reference to class template
instantiation 'boost::lambda::lambda_functor_base::sig<SigArgs>'
being compiled
1> with
1> [
1> Act=boost::lambda::relational_action,
1> Args=boost::tuples::tuple>,boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>>>,const
DT_TYPE,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>,
1> SigArgs=boost::tuples::tuple
&,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>
1> ]
1> c:\program files\microsoft visual studio
8\vc\include\algorithm(96) : see reference to function template
instantiation '_InIt
std::_Find_if::_Const_iterator<_Secure_validation>,_Pr>(_InIt,_InIt,_Pr)'
being compiled
1> with
1> [
1> _InIt=std::list>::_Const_iterator<false>,
1> _Ty=boost::shared_ptr,
1> _Secure_validation=false,
1> _Pr=boost::lambda::lambda_functor,boost::tuples::tuple>,boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>>>,const
DT_TYPE,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>
1> ]
1> c:\documents and settings\nroberts\my documents\visual
studio 2005\projects\playground\playground\playground.cpp(44) : see
reference to function template instantiation '_InIt
std::find_if::_Const_iterator<_Secure_validation>,boost::lambda::lambda_functor<T>>(_InIt,_InIt,_Pr)'
being compiled
1> with
1> [
1> _InIt=std::list>::_Const_iterator<true>,
1> _Ty=boost::shared_ptr,
1> _Secure_validation=true,
1> T=boost::lambda::lambda_functor_base,boost::tuples::tuple>,boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>>>,const
DT_TYPE,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>,
1> _Pr=boost::lambda::lambda_functor,boost::tuples::tuple>,boost::tuples::tuple,boost::tuples::tuple>,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type,boost::lambda::detail::bind_traits::type>>>,const
DT_TYPE,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type,boost::tuples::null_type>>>
1> ]
1> c:\documents and settings\nroberts\my documents\visual
studio 2005\projects\playground\playground\playground.cpp(65) : see
reference to function template instantiation
'std::list<_Ty>::_Const_iterator<_Secure_validation>
first_pipe(const T &)' being compiled
1> with
1> [
1> _Ty=boost::shared_ptr,
1> _Secure_validation=true,
1> T=list1_t
1> ]