Boost logo

Boost Users :

Subject: Re: [Boost-users] can't take const ref to tribool's indeterminate
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2011-04-19 11:36:01


On 04/19/2011 12:27 AM, Phil Nash wrote:
> The following does not compile (GCC 4.2):
> #include <boost/logic/tribool.hpp>
> template<typename T>
> void byRef( const T& v )
> {
> }
> // ...
> byRef( boost::indeterminate );
> I realise that indeterminate is actually a function. If I write my
> own, equivalent, function I can substitute it here and it compiles,
> however. I can't see what is stopping it from working in
> indeterminate's case - but I suspect it is to do with some of the
> operator overloading going on. I couldn't pin it down, though.

A function type cannot be const qualified
under C++03.

> I can take it by value, of course.
> What am I missing?
> Before you ask - yes this is boiled down code. In my real situation I
> have generic code that doesn't even know about tribool, so I can't
> special-case it. And I'd rather get to the bottom of why it doesn't
> work for me - even if the end result is "you can't do that".

Probably the easiest solution is to have the
call site use boost::tribool(boost::indeterminate).

In Christ,
Steven Watanabe

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at