Scott Zhong wrote:
do you suggest we do this to valarray?

cat t.cpp && gcc -v && gcc t.cpp && ./a.out
class _slice

std::slice et al are required by the standard. I was referring
to the get_slice() member function which isn't. A program that
does

    #define slice !ERROR!
    #include <valarray>

is ill-formed, but a program that does

    #define get_slice !ERROR!
    #include <valarray>

is not.

{
public:
        _slice () : a(0), b(0), c(0) { }
_slice (int _a, int _b, int _c)

Names with a single leading underscore followed by a lowercase
letter are reserved for use as global names, so while that alone
prevents programs from #defining macros that look like that it
doesn't make such names reserved to the implementation. I don't
think there's a way to detect local variables that are in
violation of this requirement. Nevertheless, the convention
for local variables is two leading underscores, i.e., __a,
__b, and __c above.

Martin

Reply via email to