I have just installed Service Pack 1 for VS2005, and am now getting a
warning in some code using lambda::bind. There wasn't a warning
previously, but I don't know if the issue is due to an update to the C++
standard library, a legitimate warning that they weren't flagging before,
or a spurious warning. It looks like the issue is that I'm passing a
function pointer, to bind. Is this a warning I should just ignore, or is
this a legitimate issue?
Thanks for your help!
Here's a sample app, followed by the warnings I'm seeing.
#include
using boost::lambda::bind;
using boost::lambda::_1;
#include <vector>
#include <map>
#include <algorithm>
int main() {
enum choice { select, reject };
std::vector<long> questions;
std::map answers;
std::transform(questions.begin(), questions.end(),
std::inserter(answers, answers.begin()),
bind(std::make_pair, _1, select));
return 0;
}
c:\boost\boost\lambda\detail\lambda_traits.hpp(389) : warning C4180:
qualifier applied to function type has no meaning; ignored
c:\boost\boost\lambda\detail\lambda_traits.hpp(458) : see
reference to class template instantiation
'boost::lambda::detail::bind_traits<T>' being compiled
with
[
T=std::pair (long,main::choice)
]
c:\temp\lambda_warning_test\lambda_warning_test.cpp(20) : see
reference to class template instantiation
'boost::lambda::detail::bind_tuple_mapper'
being compiled
with
[
T0=std::pair (long,main::choice),
T1=boost::lambda::placeholder1_type,
T2=const main::choice,
T3=boost::tuples::null_type,
T4=boost::tuples::null_type,
T5=boost::tuples::null_type,
T6=boost::tuples::null_type,
T7=boost::tuples::null_type,
T8=boost::tuples::null_type,
T9=boost::tuples::null_type
]
--------------------------------
John Wismar
john.wismar@autozone.com