Обсуждение: RC1 finally wrapped ...
Its wrap'd and on the main ftp site now, to be propogated as mirrors pull it ... will announce tomorrow, to give the mirrors a chance to grab, but if anyone wants to take a quick peek, make sure everything looks okay that would be cool ... file sizes look about right based on the past betas ...
The autoconf test for C++ doesn't work with standard-enforcing
compilers....
[teg@halden teg]$ cat foo.C
#include <string>
int main(int argc, char **argv){string foo="xyzzy";return 0;
}
[teg@halden teg]$ c++ foo.C -o foo
foo.C: In function `int main(int, char**)':
foo.C:4: `string' undeclared (first use this function)
foo.C:4: (Each undeclared identifier is reported only once for each function it appears in.)
foo.C:4: parse error before `=' token
[teg@halden teg]$
The standard mandates that string is accessed in one of the following
ways:
[teg@halden teg]$ cat foo2.C
#include <string>
using namespace std;
int main(int argc, char **argv){string foo="xyzzy";return 0;
}
[teg@halden teg]$ cat foo3.C
#include <string>
int main(int argc, char **argv){std::string foo="xyzzy";return 0;
}
[teg@halden teg]$
Some compilers accept the old way (and namespaces have been available
for quite some time now), others (like upcoming gcc 3.1) don't.
--
Trond Eivind Glomsrød
Red Hat, Inc.
teg@redhat.com (Trond Eivind Glomsrød) writes:
> The autoconf test for C++ doesn't work with standard-enforcing
> compilers....
Exactly what part of it doesn't work? AFAICT, the first test is
just to see if #include <string>
succeeds, and if that works then we do not try the section you seem
to be blaming. So it looks to me like a compiler that conforms
to the C++-standard-of-the-month should work fine: both
HAVE_CXX_STRING_HEADER and HAVE_NAMESPACE_STD should become set.
What are you seeing?
regards, tom lane
On Thu, 24 Jan 2002, Tom Lane wrote: > teg@redhat.com (Trond Eivind Glomsrød) writes: > > The autoconf test for C++ doesn't work with standard-enforcing > > compilers.... > > Exactly what part of it doesn't work? AFAICT, the first test is > just to see if > #include <string> > succeeds, and if that works then we do not try the section you seem > to be blaming. So it looks to me like a compiler that conforms > to the C++-standard-of-the-month should work fine: both > HAVE_CXX_STRING_HEADER and HAVE_NAMESPACE_STD should become set. > What are you seeing? I saw it failing... however, the cause for this failing was the use of multiline literals (cc_version). The compilers warns about this being deprecated, and autoconf thinks this means the test failed. See the other patch I posted yesterday. -- Trond Eivind Glomsrød Red Hat, Inc.
Trond Eivind Glomsrød <teg@redhat.com> writes:
>> What are you seeing?
> I saw it failing... however, the cause for this failing was the use of
> multiline literals (cc_version). The compilers warns about this being
> deprecated, and autoconf thinks this means the test failed.
Ah. So with the "head -1" fix we should be good to go?
regards, tom lane