// Boost.Range library // // Copyright Neil Groves 2014. Use, modification and // distribution is subject to the Boost Software License, Version // 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // // For more information, see http://www.boost.org/libs/range/ // // As reported in https://groups.google.com/forum/#!msg/boost-developers-archive/6JVNg7ZPb4k/RAlvPUec4MAJ #include #include #include namespace boost { enum {unnamed}; struct S { bool operator<(int) const {return false;} bool operator==(int) const {return false;} }; template bool foo(T i) { return i < unnamed || i == unnamed; } } int main() { using boost::lambda::_1; (void)(_1 == 42); (void)(42 == _1); boost::foo(42); boost::foo(boost::S()); }