www.digitalmars.com         C & C++   DMDScript  

c++.beta - Invalid reference initialisation

int main(int /* argc */, char ** /*argv*/)
{
        long            l       =       2222;
        short const     &s      =       l;

        l = 0;

        printf("%ld, %d\n", l, s);

    return 0;
}

Should print "0, 2222", since s should be bound to a temporary. (Std:
section 8.5.3)

Borland 5.6, CodeWarrior 8.3, Intel 7.0, Visual C++ 6/7.0/7.1, Open Watcom
1.0 all do so.

DMC++ and GCC print "0, 0"
Aug 24 2003