Boost logo

Boost :

From: Patrick Hartling (patrick_at_[hidden])
Date: 2003-03-03 14:05:50

The regression tests (version 3) are running, and it may be a while
before they are done. In the meantime, the results of preprocessing the
file give more details of the error:

cc-1108 CC: ERROR File =
Line = 106
   The indicated expression must have pointer-to-function type.

       static const bool value = sizeof(bd_helper<B,D> ::check(Host(),
0)) == sizeof(type_traits::yes_type);

The code in question comes from the following:

template <typename B, typename D>
struct bd_helper
     template <typename T>
     static type_traits::yes_type check(D const volatile *, T);
     static type_traits::no_type check(B const volatile *, int);

template<typename B, typename D>
struct is_base_and_derived_impl2
     struct Host
         operator B const volatile *() const;
         operator D const volatile *();

     static const bool value = sizeof(bd_helper<B,D> ::check(Host(), 0))
== sizeof(type_traits::yes_type);


This looks okay to me (though I am not familiar with the Boost
internals), but I think I have seen a similar error with this compiler.
A cast might have been necessary to coerce the compiler into dealing with
the code, but I'm guessing that is not appropriate in this case.


David Abrahams wrote:
> Patrick Hartling <patrick_at_[hidden]> writes:
>>Is there a recommended procedure I can follow for tracking this down
>>and submitting a patch?
> I would start by preprocessing the file to see what's going on behind
> that macro, then tweaking it until it works.
>>For example, I was considering running the regression tests for the
>>MIPSpro Compilers. Would that be helpful,
> Very much so
>> or is someone on the Boost team on top of this already?
> Not that I know of.

Patrick L. Hartling                     | Research Assistant, VRAC
patrick_at_[hidden]                | 2624 Howe Hall: 1.515.294.4916             |

Boost list run by bdawes at, gregod at, cpdaniel at, john at