Opened 12 years ago
Last modified 12 years ago
#4301 new Bugs
and_<true_>::type is false_
| Reported by: | mstefanro | Owned by: | Joel Falcou |
|---|---|---|---|
| Milestone: | Boost 1.46.0 | Component: | mpl |
| Version: | Boost Development Trunk | Severity: | Problem |
| Keywords: | Cc: | admin@… |
Description
It is probably a good idea to make and_<true_>::type be true_, or throw a compiler error, or at least fix the documentation at http://www.boost.org/doc/libs/1_43_0/libs/mpl/doc/refmanual/and.html such that this unusual behavior is documented.
Change History (2)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
| Cc: | added |
|---|---|
| Milestone: | Boost 1.43.0 → Boost 1.46.0 |
| Owner: | changed from to |
| Severity: | Cosmetic → Problem |
| Version: | Boost 1.44.0 → Boost Development Trunk |
Confirmed, this is still a problem, possibly a problem with other binary logical operations too. I think we need to prohibit an unary and_ entirely. This reproduces the problem:
#include <boost/mpl/assert.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/and.hpp>
int main (void) {
using boost::mpl::and_;
using boost::mpl::true_;
BOOST_MPL_ASSERT((and_<true_>));
}
Note:
See TracTickets
for help on using tickets.

Hmmm. The fact that this even compiles is an artifact of the way mpl::na is implemented. and_ is only intended to take two or more arguments.