r.gmail wrote:
Hi all,
  when I try to compile the following simple code:

#include <iostream>

int main () {

  if (index > 0) {
    std::cout << "Here" << std::endl;
  }

  return 0;
}

using g++ 3.3.5 (Debian 1:3.3.5-13) version and also g++ version  4.1.1
(Fedora core 5), I don't have any warnings or errors during the
compilation and the executable works fine, just prints "Here" to
stdout.
  I suppose it works, using instead of "index", any other extern
symbols defined in string.h or strings.h (simply the "compiler"
compares the address of such functions with a null).
  My question is is it a standard behavior ? Should string.h be
included in iostream ?


I believe that's implementation dependent. Your code, as posted, is ill-formed (index is undefined). As far as I can see, ISO/IEC 14882:2003 provides no guarantees as to what nested includes are in any standard header (hence the technical need to include <ostream> for cout).

_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to