[omniORB] Pointer from a _var?

Bruce Fountain B_Fountain@motherwell.com.au
Thu, 21 Jun 2001 09:02:33 +0800


Stephen Crawley wrote:
> According to H&V, a _var class for a struct, union or sequence type
> holds a "T *"; i.e. something that you can assume is a real pointer.
> I can't see what would be wrong with just comparing it with 0.

Doesn't work for omni on NT. This code:

    // Foo.idl
    interface Foo
    {
        typedef sequence<short> ShortSeq;
        // ...
    }

    // Client.cpp
    Foo::ShortSeq_var ss;
    if (ss == 0)
    {
        std::cout << "ss is null\n";
    }

generates the following compiler error:
    error C2678: binary '==' : no operator defined which takes a
    left-hand operand of type 'class Foo::ShortSeq_var' (or there
    is no acceptable conversion)

Bruce Fountain
b_fountain@motherwell.com.au