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


AMDG

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 hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net