------- Additional Comments From gdr at integrable-solutions dot net  
2005-08-12 09:44 -------
Subject: Re:  can't compile self defined void distance(std::vector<T>, 
std::vector<T>)

"adah at netstd dot com" <[EMAIL PROTECTED]> writes:

| > you still fail to provide such a definition for "interface".
| > -- Gaby
| 
| Why should I?

Because, it is *you* who brought that topic in this discussion.

|  Herb defined it in Exceptional C++, Item 32:
| 
| For a class X, all functions, including free functions, that both
| 
| * `mention' X
| * are `supplied with' X
| 
| are logically part of X, because they form part of the interface of X.

That definition bans std::swap as currently usable
with std::complex<double>, e.g. 

   std::complex<double> w, z;
   swap(z, w);

You would have hard-time convincing me that I want that behaviour for
standard C++, let alone GCC.  Furtheremo more, you have to define
"supplied with".  If N gives me

     namespace N {
        struct X { };
     }

and M adds

    namespace M {
       using N::X;
       f(X);
    }

is M::f part of N::X's interface?



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15910

Reply via email to