Boost logo

Boost Users :

Subject: [Boost-users] boost-introduced ambiguity in _1/_2 etc.
From: Piotr Wyderski (piotr.wyderski_at_[hidden])
Date: 2012-02-10 02:41:28


Hello,

I am refactoring our application which uses boost extensively
in order to replace some boost-provided entities with their
std counterparts defined in the C++11 standard. I've experienced
a problem related to boost::bind placeholders defined in
placeholders.hpp. The file begins with:

namespace
{

static inline boost::arg<1> _1() { return boost::arg<1>(); }
[...]

unconditionally injecting the _N() functions into the global
namespace scope. When I type "using namespace std::placeholders;"
in order to use e.g. std::placeholders::_1, an unsolvable ambiguity
occurs, as there is no way to transfer the boost-defined variants
into an uncolliding namespace. Could you please add a macro in 1.49
which would allow me to override the default behaviour and define
the functions in boost:: or boost::placeholders namespaces?

#if defined(BOOST_USE_BOOST_PLACEHOLDERS_NAMESPACE)
     namespace boost {
#else
     namespace {

[...]

     Best regards, Piotr


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net