Jochen Kalmbach wrote:
Hi Marco Segurini,
I like to know if is it possible to disable/reenable /WX (treat warning
as error) via #pragma on my code.
See: C/C++ Preprocessor Reference: warning
http://msdn.microsoft.com/library/en...ir_warning.asp
Thanks Jochen,
I already tryed that way but there are cases where #pragma warning does
not work:
//----------------------
#include <algorithm>
#include <iostream>
#include <vector>
#include <boost/lambda/lambda.hpp>
#pragma warning(push)
#pragma warning(disable : 4512)
void call()
{
std::vector<int> MyVect(10);
std::for_each(MyVect.begin(), MyVect.end(), std::cout <<
boost::lambda::_1 << '\n');
}
#pragma warning(pop)
int main()
{
call();
return 0;
}
//----------------------
this code compiled with /W4 and /WX returns these output on both VS2003
and VS2005
------ Build started: Project: BoostLambda, Configuration: Debug Win32
------
Compiling...
BoostLambda.cpp
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functor_base.hpp(48)
: warning C4512: 'boost::lambda::identity<T>' : assignment operator
could not be generated
with
[
T=boost::lambda::bound_argument_conversion<boost:: tuples::tuple<boost::lambda::detail::IF<true,std:: ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>::head_type::type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functors.hpp(118)
: see reference to class template instantiation
'boost::lambda::identity<T>' being compiled
with
[
T=boost::lambda::bound_argument_conversion<boost:: tuples::tuple<boost::lambda::detail::IF<true,std:: ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>::head_type::type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functor_base.hpp(169)
: see reference to class template instantiation
'boost::lambda::lambda_functor<T>' being compiled
with
[
T=boost::lambda::identity<boost::lambda::bound_arg ument_conversion<boost::tuples::tuple<boost::lambd a::detail::IF<true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>::head_type::type>
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functor_base.hpp(218)
: see reference to class template instantiation
'boost::lambda::detail::deduce_argument_types_<Arg s,SigArgs>' being compiled
with
[
Args=boost::tuples::tuple<boost::lambda::detail::I F<true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>,
SigArgs=boost::tuples::null_type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\operator_lambda_func_base.hpp(65)
: see reference to class template instantiation
'boost::lambda::detail::deduce_argument_types<Args ,SigArgs>' being compiled
with
[
Args=boost::tuples::tuple<boost::lambda::detail::I F<true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>,
SigArgs=boost::tuples::null_type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\operator_lambda_func_base.hpp(217)
: see reference to class template instantiation
'boost::lambda::detail::binary_rt<Action,Bound,Ope n>' being compiled
with
[
Action=boost::lambda::bitwise_action<boost::lambda ::leftshift_action>,
Bound=boost::tuples::tuple<boost::lambda::detail:: IF<true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>,
Open=boost::tuples::null_type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functors.hpp(139)
: see reference to class template instantiation
'boost::lambda::lambda_functor_base<Act,Args>::sig <SigArgs>' being compiled
with
[
Act=boost::lambda::bitwise_action<boost::lambda::l eftshift_action>,
Args=boost::tuples::tuple<boost::lambda::detail::I F<true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>,
SigArgs=boost::tuples::null_type
]
e:\Prove\C++ NET
2003\BoostLambda\BoostLambda\BoostLambda.cpp(12) : see reference to
class template instantiation 'boost::lambda::lambda_functor<T>' being
compiled
with
[
T=boost::lambda::lambda_functor_base<boost::lambda ::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<boost::lambda::detail::IF<tru e,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>>
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functors.hpp(209)
: warning C4512: 'boost::lambda::lambda_functor<T>' : assignment
operator could not be generated
with
[
T=boost::lambda::identity<boost::lambda::bound_arg ument_conversion<boost::tuples::tuple<boost::lambd a::detail::IF<true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>::head_type::type>
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functor_base.hpp(48)
: warning C4512: 'boost::lambda::identity<T>' : assignment operator
could not be generated
with
[
T=const boost::lambda::bound_argument_conversion<const
boost::tuples::cons<const boost::lambda::detail::parameter_traits_<const
char,const boost::lambda::detail::IF<false,const char &,const
char>::RET>::type,boost::tuples::detail::map_tuple _to_cons<boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type>::type>::head_type>::type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functors.hpp(118)
: see reference to class template instantiation
'boost::lambda::identity<T>' being compiled
with
[
T=const boost::lambda::bound_argument_conversion<const
boost::tuples::cons<const boost::lambda::detail::parameter_traits_<const
char,const boost::lambda::detail::IF<false,const char &,const
char>::RET>::type,boost::tuples::detail::map_tuple _to_cons<boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type>::type>::head_type>::type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functor_base.hpp(169)
: see reference to class template instantiation
'boost::lambda::lambda_functor<T>' being compiled
with
[
T=boost::lambda::identity<const
boost::lambda::bound_argument_conversion<const boost::tuples::cons<const
boost::lambda::detail::parameter_traits_<const char,const
boost::lambda::detail::IF<false,const char &,const
char>::RET>::type,boost::tuples::detail::map_tuple _to_cons<boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type>::type>::head_type>::type>
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functor_base.hpp(174)
: see reference to class template instantiation
'boost::lambda::detail::deduce_argument_types_<Arg s,SigArgs>' being compiled
with
[
Args=boost::tuples::tuple<boost::lambda::lambda_fu nctor<boost::lambda::lambda_functor_base<boost::la mbda::bitwise_action<boost::lambda::leftshift_acti on>,boost::tuples::tuple<boost::lambda::detail::IF <true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>>>,const
boost::lambda::detail::parameter_traits_<const char,const
boost::lambda::detail::IF<false,const char &,const
char>::RET>::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>::tail_type,
SigArgs=boost::tuples::null_type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functor_base.hpp(218)
: see reference to class template instantiation
'boost::lambda::detail::deduce_argument_types_<Arg s,SigArgs>' being compiled
with
[
Args=boost::tuples::tuple<boost::lambda::lambda_fu nctor<boost::lambda::lambda_functor_base<boost::la mbda::bitwise_action<boost::lambda::leftshift_acti on>,boost::tuples::tuple<boost::lambda::detail::IF <true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>>>,const
boost::lambda::detail::parameter_traits_<const char,const
boost::lambda::detail::IF<false,const char &,const
char>::RET>::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>,
SigArgs=boost::tuples::null_type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\operator_lambda_func_base.hpp(65)
: see reference to class template instantiation
'boost::lambda::detail::deduce_argument_types<Args ,SigArgs>' being compiled
with
[
Args=boost::tuples::tuple<boost::lambda::lambda_fu nctor<boost::lambda::lambda_functor_base<boost::la mbda::bitwise_action<boost::lambda::leftshift_acti on>,boost::tuples::tuple<boost::lambda::detail::IF <true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>>>,const
boost::lambda::detail::parameter_traits_<const char,const
boost::lambda::detail::IF<false,const char &,const
char>::RET>::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>,
SigArgs=boost::tuples::null_type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\operator_lambda_func_base.hpp(217)
: see reference to class template instantiation
'boost::lambda::detail::binary_rt<Action,Bound,Ope n>' being compiled
with
[
Action=boost::lambda::bitwise_action<boost::lambda ::leftshift_action>,
Bound=boost::tuples::tuple<boost::lambda::lambda_f unctor<boost::lambda::lambda_functor_base<boost::l ambda::bitwise_action<boost::lambda::leftshift_act ion>,boost::tuples::tuple<boost::lambda::detail::I F<true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>>>,const
boost::lambda::detail::parameter_traits_<const char,const
boost::lambda::detail::IF<false,const char &,const
char>::RET>::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>,
Open=boost::tuples::null_type
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functors.hpp(139)
: see reference to class template instantiation
'boost::lambda::lambda_functor_base<Act,Args>::sig <SigArgs>' being compiled
with
[
Act=boost::lambda::bitwise_action<boost::lambda::l eftshift_action>,
Args=boost::tuples::tuple<boost::lambda::lambda_fu nctor<boost::lambda::lambda_functor_base<boost::la mbda::bitwise_action<boost::lambda::leftshift_acti on>,boost::tuples::tuple<boost::lambda::detail::IF <true,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>>>,const
boost::lambda::detail::parameter_traits_<const char,const
boost::lambda::detail::IF<false,const char &,const
char>::RET>::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>,
SigArgs=boost::tuples::null_type
]
e:\Prove\C++ NET
2003\BoostLambda\BoostLambda\BoostLambda.cpp(12) : see reference to
class template instantiation 'boost::lambda::lambda_functor<T>' being
compiled
with
[
T=boost::lambda::lambda_functor_base<boost::lambda ::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<boost::lambda::lambda_functor <boost::lambda::lambda_functor_base<boost::lambda: :bitwise_action<boost::lambda::leftshift_action>,b oost::tuples::tuple<boost::lambda::detail::IF<true ,std::ostream
&,const
boost::lambda::const_copy_argument<std::ostream>:: type>::RET,boost::lambda::lambda_functor<boost::la mbda::placeholder<1>>,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type,boost::tuples::null_type,boo st::tuples::null_type>>>,const
boost::lambda::detail::parameter_traits_<const char,const
boost::lambda::detail::IF<false,const char &,const
char>::RET>::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>>
]
e:\Programming\Boost\boost_1_31_0\boost\lambda\det ail\lambda_functors.hpp(209)
: warning C4512: 'boost::lambda::lambda_functor<T>' : assignment
operator could not be generated
with
[
T=boost::lambda::identity<const
boost::lambda::bound_argument_conversion<const boost::tuples::cons<const
boost::lambda::detail::parameter_traits_<const char,const
boost::lambda::detail::IF<false,const char &,const
char>::RET>::type,boost::tuples::detail::map_tuple _to_cons<boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type,boost::tuples::null_type,boost::tuples::n ull_type>::type>::head_type>::type>
]
Build log was saved at "file://e:\Prove\C++ net
2003\BoostLambda\BoostLambda\Debug\BuildLog.htm"
BoostLambda - 0 error(s), 4 warning(s)
---------------------- Done ----------------------
Build: 1 succeeded, 0 failed, 0 skipped
Any Ideas?
thanks.
Marco.
--
For direct reply change underscore to dot