c++ - can't get past first header
- "Mark D. ANderson" <mda discerning.com> Jun 04 2001
- Damian Dixon <damian.dixon tenetdefence.com> Jun 05 2001
- "Mark D. ANderson" <mda discerning.com> Jun 05 2001
- Jan Knepper <jan smartsoft.cc> Jun 05 2001
- "Damian Dixon" <damian.dixon virgin.net> Jun 05 2001
- Damian Dixon <damian.dixon tenetdefence.com> Jun 06 2001
this is my first day using DMC++, so this is probably something basic (which is why i'm not posting this in the stlport group). i downloaded dm815c.zip and the "release" stl port (no version number, but readme says "19th March 2001"). anyhow, it barfs on the first occurence of the keyword "template" (verbose output below). this code compiles fine using g++. also, i can compile plain C code ok with SC. the first line in mda1.C is #include <iostream> and it seems to just follow the chain of includes then crap out on the first compilation unit. any ideas? thanks.... -mda d:/devtools/C/dm-815c/bin/SC -cpp -Id:/devtools/C/dm-stlport-4.0/stlport -o -v -w mda1.C -o mda1 scppn -cpp -Id:/devtools/C/dm-stlport-4.0/stlport -o -v -w -o mda1.C Digital Mars C/C++ Compiler Version 8.1B5n Copyright (C) Digital Mars 2000-2001. All Rights Reserved. Written by Walter Bright www.digitalmars.com 'mda1.C' class __nt_context class __eh_cv 'd:/devtools/C/dm-stlport-4.0/stlport\iostream' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_prolog.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_config.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl_user_config.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_site_config.h' 'd:/devtools/C/dm-stlport-4.0/stlport\config/stlcomp.h' 'd:/devtools/C/dm-stlport-4.0/stlport\config/stl_digital_mars.h' 'd:/devtools/C/dm-stlport-4.0/stlport\config/stl_confix.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_check_config.h' 'd:/devtools/C/dm-stlport-4.0/stlport\wrap_std/iostream' 'd:/devtools/C/dm-stlport-4.0/stlport\wrap_std/h/iostream.h' 'd:\devtools\C\dm-815c\bin\..\mfc\include\../../include/iostream.h' 'd:/devtools/C/dm-stlport-4.0/stlport\string.h' 'd:\devtools\C\dm-815c\bin\..\mfc\include\../../include/string.h' class ios ios::rdbuf ios::tie ios::fill ios::precision ios::rdstate ios::eof ios::fail ios::bad ios::good ios::flags ios::width ios::width ios::fill ios::precision ios::operator ?BPAX ios::operator ! class streambuf streambuf::base streambuf::pbase streambuf::pptr streambuf::epptr streambuf::gptr streambuf::egptr streambuf::eback streambuf::ebuf streambuf::unbuffered streambuf::blen streambuf::pbump streambuf::gbump streambuf::unbuffered streambuf::in_avail streambuf::out_waiting streambuf::allocate streambuf::sgetc streambuf::snextc streambuf::sbumpc streambuf::stossc streambuf::sputbackc streambuf::sputc streambuf::sputn streambuf::sgetn class istream istream::isfx istream::getline istream::getline istream::gcount istream::ipfx istream::ipfx0 istream::ipfx1 istream::operator >> istream::operator >> istream::operator >> istream::sync istream::operator >> istream::get istream::get istream::get istream::peek class ostream ostream::opfx ostream::osfx ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::put ostream::write class iostream class istream_withassign class ostream_withassign class iostream_withassign class Iostream_init 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_epilog.h' 'd:/devtools/C/dm-stlport-4.0/stlport\map' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_prolog.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_tree.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_algobase.h' 'd:/devtools/C/dm-stlport-4.0/stlport\cstddef' 'd:\devtools\C\dm-815c\bin\..\mfc\include\../../include/stddef.h' 'd:/devtools/C/dm-stlport-4.0/stlport\cstring' 'd:/devtools/C/dm-stlport-4.0/stlport\climits' 'd:\devtools\C\dm-815c\bin\..\include\limits.h' 'd:/devtools/C/dm-stlport-4.0/stlport\cstdlib' 'd:\devtools\C\dm-815c\bin\..\mfc\include\../../include/stdlib.h' class _DIV class _LDIV 'd:\devtools\C\dm-815c\bin\..\include\heapstat.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h' d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(38) : Error: function expected template <class _Tp> ^ d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(42) : Error: not an overloadable operator token } ^ d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(45) : Error: identifier or '( declarator )' expected d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(48) : Error: function expected template <class _Tp> ^ d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(52) : Error: not an overloadable operator token Fatal error: too many errors
Jun 04 2001
Hi, The following code compiles and runs on my machine:- -------start of mda1.C #include <iostream> int main() { cout << "Hello" << endl; return 1; } -------end of mda1.C Using the following command line: D:\Dm815c>d:/Dm815c/bin/SC -cpp -Id:\SC\stltemp\STL\port\stlport -o -v -w mda1.C -o mda1 (This is using the last release version of STLport) The output was....... scppn -cpp -Id:\SC\stltemp\STL\port\stlport -o -v -w -o mda1.C Digital Mars C/C++ Compiler Version 8.1B5n Copyright (C) Digital Mars 2000-2001. All Rights Reserved. Written by Walter Bright www.digitalmars.com 'mda1.C' class __nt_context class __eh_cv 'd:\SC\stltemp\STL\port\stlport\iostream' 'd:\SC\stltemp\STL\port\stlport\stl/_prolog.h' 'd:\SC\stltemp\STL\port\stlport\stl/_config.h' 'd:\SC\stltemp\STL\port\stlport\stl_user_config.h' 'd:\SC\stltemp\STL\port\stlport\stl/_site_config.h' 'd:\SC\stltemp\STL\port\stlport\config/stlcomp.h' 'd:\SC\stltemp\STL\port\stlport\config/stl_digital_mars.h' 'd:\SC\stltemp\STL\port\stlport\config/stl_confix.h' 'd:\SC\stltemp\STL\port\stlport\stl/_check_config.h' 'd:\SC\stltemp\STL\port\stlport\wrap_std/iostream' 'd:\SC\stltemp\STL\port\stlport\wrap_std/h/iostream.h' 'd:\Dm815c\bin\..\mfc\include\../../include/iostream.h' 'd:\SC\stltemp\STL\port\stlport\string.h' 'd:\Dm815c\bin\..\mfc\include\../../include/string.h' class ios ios::rdbuf ios::tie ios::fill ios::precision ios::rdstate ios::eof ios::fail ios::bad ios::good ios::flags ios::width ios::width ios::fill ios::precision ios::operator ?BPAX ios::operator ! class streambuf streambuf::base streambuf::pbase streambuf::pptr streambuf::epptr streambuf::gptr streambuf::egptr streambuf::eback streambuf::ebuf streambuf::unbuffered streambuf::blen streambuf::pbump streambuf::gbump streambuf::unbuffered streambuf::in_avail streambuf::out_waiting streambuf::allocate streambuf::sgetc streambuf::snextc streambuf::sbumpc streambuf::stossc streambuf::sputbackc streambuf::sputc streambuf::sputn streambuf::sgetn class istream istream::isfx istream::getline istream::getline istream::gcount istream::ipfx istream::ipfx0 istream::ipfx1 istream::operator >> istream::operator >> istream::operator >> istream::sync istream::operator >> istream::get istream::get istream::get istream::peek class ostream ostream::opfx ostream::osfx ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::put ostream::write class iostream class istream_withassign class ostream_withassign class iostream_withassign class Iostream_init 'd:\SC\stltemp\STL\port\stlport\stl/_epilog.h' main C/C++ Compiler complete. Code: 0x0025 (37) Data: 0x0006 (6) Time: 2.00 seconds scppn -cpp -Id:\SC\stltemp\STL\port\stlport -o -v -w -o mda1.c Digital Mars C/C++ Compiler Version 8.1B5n Copyright (C) Digital Mars 2000-2001. All Rights Reserved. Written by Walter Bright www.digitalmars.com 'mda1.c' class __nt_context class __eh_cv 'd:\SC\stltemp\STL\port\stlport\iostream' 'd:\SC\stltemp\STL\port\stlport\stl/_prolog.h' 'd:\SC\stltemp\STL\port\stlport\stl/_config.h' 'd:\SC\stltemp\STL\port\stlport\stl_user_config.h' 'd:\SC\stltemp\STL\port\stlport\stl/_site_config.h' 'd:\SC\stltemp\STL\port\stlport\config/stlcomp.h' 'd:\SC\stltemp\STL\port\stlport\config/stl_digital_mars.h' 'd:\SC\stltemp\STL\port\stlport\config/stl_confix.h' 'd:\SC\stltemp\STL\port\stlport\stl/_check_config.h' 'd:\SC\stltemp\STL\port\stlport\wrap_std/iostream' 'd:\SC\stltemp\STL\port\stlport\wrap_std/h/iostream.h' 'd:\Dm815c\bin\..\mfc\include\../../include/iostream.h' 'd:\SC\stltemp\STL\port\stlport\string.h' 'd:\Dm815c\bin\..\mfc\include\../../include/string.h' class ios ios::rdbuf ios::tie ios::fill ios::precision ios::rdstate ios::eof ios::fail ios::bad ios::good ios::flags ios::width ios::width ios::fill ios::precision ios::operator ?BPAX ios::operator ! class streambuf streambuf::base streambuf::pbase streambuf::pptr streambuf::epptr streambuf::gptr streambuf::egptr streambuf::eback streambuf::ebuf streambuf::unbuffered streambuf::blen streambuf::pbump streambuf::gbump streambuf::unbuffered streambuf::in_avail streambuf::out_waiting streambuf::allocate streambuf::sgetc streambuf::snextc streambuf::sbumpc streambuf::stossc streambuf::sputbackc streambuf::sputc streambuf::sputn streambuf::sgetn class istream istream::isfx istream::getline istream::getline istream::gcount istream::ipfx istream::ipfx0 istream::ipfx1 istream::operator >> istream::operator >> istream::operator >> istream::sync istream::operator >> istream::get istream::get istream::get istream::peek class ostream ostream::opfx ostream::osfx ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::put ostream::write class iostream class istream_withassign class ostream_withassign class iostream_withassign class Iostream_init 'd:\SC\stltemp\STL\port\stlport\stl/_epilog.h' main C/C++ Compiler complete. Code: 0x0025 (37) Data: 0x0006 (6) Time: 2.01 seconds link mda1+mda1,,,user32+kernel32/noi; D:\Dm815c> As you can see the above program compiles and links. If you compare the outputs carfully you will see that the problem is not to do with including iostream but including something else (something todo with including __relops.h, but I can't see how it is being included with out see more then the first line of your code). Could you provide a cut down compile-able code section that generates the problem please. Regards Damian On Mon, 4 Jun 2001 21:39:31 -0700, "Mark D. ANderson" <mda discerning.com> wrote:this is my first day using DMC++, so this is probably something basic (which is why i'm not posting this in the stlport group). i downloaded dm815c.zip and the "release" stl port (no version number, but readme says "19th March 2001"). anyhow, it barfs on the first occurence of the keyword "template" (verbose output below). this code compiles fine using g++. also, i can compile plain C code ok with SC. the first line in mda1.C is #include <iostream> and it seems to just follow the chain of includes then crap out on the first compilation unit. any ideas? thanks.... -mda d:/devtools/C/dm-815c/bin/SC -cpp -Id:/devtools/C/dm-stlport-4.0/stlport -o -v -w mda1.C -o mda1 scppn -cpp -Id:/devtools/C/dm-stlport-4.0/stlport -o -v -w -o mda1.C Digital Mars C/C++ Compiler Version 8.1B5n Copyright (C) Digital Mars 2000-2001. All Rights Reserved. Written by Walter Bright www.digitalmars.com 'mda1.C' class __nt_context class __eh_cv 'd:/devtools/C/dm-stlport-4.0/stlport\iostream' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_prolog.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_config.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl_user_config.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_site_config.h' 'd:/devtools/C/dm-stlport-4.0/stlport\config/stlcomp.h' 'd:/devtools/C/dm-stlport-4.0/stlport\config/stl_digital_mars.h' 'd:/devtools/C/dm-stlport-4.0/stlport\config/stl_confix.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_check_config.h' 'd:/devtools/C/dm-stlport-4.0/stlport\wrap_std/iostream' 'd:/devtools/C/dm-stlport-4.0/stlport\wrap_std/h/iostream.h' 'd:\devtools\C\dm-815c\bin\..\mfc\include\../../include/iostream.h' 'd:/devtools/C/dm-stlport-4.0/stlport\string.h' 'd:\devtools\C\dm-815c\bin\..\mfc\include\../../include/string.h' class ios ios::rdbuf ios::tie ios::fill ios::precision ios::rdstate ios::eof ios::fail ios::bad ios::good ios::flags ios::width ios::width ios::fill ios::precision ios::operator ?BPAX ios::operator ! class streambuf streambuf::base streambuf::pbase streambuf::pptr streambuf::epptr streambuf::gptr streambuf::egptr streambuf::eback streambuf::ebuf streambuf::unbuffered streambuf::blen streambuf::pbump streambuf::gbump streambuf::unbuffered streambuf::in_avail streambuf::out_waiting streambuf::allocate streambuf::sgetc streambuf::snextc streambuf::sbumpc streambuf::stossc streambuf::sputbackc streambuf::sputc streambuf::sputn streambuf::sgetn class istream istream::isfx istream::getline istream::getline istream::gcount istream::ipfx istream::ipfx0 istream::ipfx1 istream::operator >> istream::operator >> istream::operator >> istream::sync istream::operator >> istream::get istream::get istream::get istream::peek class ostream ostream::opfx ostream::osfx ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::operator << ostream::put ostream::write class iostream class istream_withassign class ostream_withassign class iostream_withassign class Iostream_init 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_epilog.h' 'd:/devtools/C/dm-stlport-4.0/stlport\map' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_prolog.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_tree.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_algobase.h' 'd:/devtools/C/dm-stlport-4.0/stlport\cstddef' 'd:\devtools\C\dm-815c\bin\..\mfc\include\../../include/stddef.h' 'd:/devtools/C/dm-stlport-4.0/stlport\cstring' 'd:/devtools/C/dm-stlport-4.0/stlport\climits' 'd:\devtools\C\dm-815c\bin\..\include\limits.h' 'd:/devtools/C/dm-stlport-4.0/stlport\cstdlib' 'd:\devtools\C\dm-815c\bin\..\mfc\include\../../include/stdlib.h' class _DIV class _LDIV 'd:\devtools\C\dm-815c\bin\..\include\heapstat.h' 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h' d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(38) : Error: function expected template <class _Tp> ^ d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(42) : Error: not an overloadable operator token } ^ d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(45) : Error: identifier or '( declarator )' expected d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(48) : Error: function expected template <class _Tp> ^ d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(52) : Error: not an overloadable operator token Fatal error: too many errors
Jun 05 2001
"Damian Dixon" <damian.dixon tenetdefence.com> wrote in message news:1103_991727358 dilbert...The following code compiles and runs on my machine:- -------start of mda1.C #include <iostream> int main() { cout << "Hello" << endl; return 1; } -------end of mda1.C
that works for me too. however, amazingly, if I change it to this: ----- #include <hash_map> int main() { return 1; } ----- i get obscure compiler errors again: ... 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h' d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(38) : Error: function expected template <class _Tp> ^ ... i thought it first it might be because of using unix line endings in mda1.C (does dm support those?) but i changed to dos line endings and had the same result. this has got to be something basic. note that all i did was unzip the dm compiler, and unzip the stlport, and go. i didn't edit any config files, either ini or config.h. but that should work, right? -mda
Jun 05 2001
"Mark D. ANderson" wrote: CC:ed to c++.stl.port"Damian Dixon" <damian.dixon tenetdefence.com> wrote in message news:1103_991727358 dilbert...The following code compiles and runs on my machine:- -------start of mda1.C #include <iostream> int main() { cout << "Hello" << endl; return 1; } -------end of mda1.C
that works for me too. however, amazingly, if I change it to this: ----- #include <hash_map> int main() { return 1; } ----- i get obscure compiler errors again: ... 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h' d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(38) : Error: function expected template <class _Tp> ^ ... i thought it first it might be because of using unix line endings in mda1.C (does dm support those?)
Never had a problem with those... Move my files around all the time...this has got to be something basic. note that all i did was unzip the dm compiler, and unzip the stlport, and go. i didn't edit any config files, either ini or config.h. but that should work, right?
I think you might need certain 'defines' for STLport to work. Damian: Is there any #define that you require for your patches to go active during compilation??? The best person to talk to is Damian Dixon. I myself use the HP STL and SGI STL that are also available on the site. HTH Jan
Jun 05 2001
Jan Knepper <jan smartsoft.cc> wrote in message news:3B1D41A1.F61EB1A7 smartsoft.cc..."Mark D. ANderson" wrote: CC:ed to c++.stl.port"Damian Dixon" <damian.dixon tenetdefence.com> wrote in message
The following code compiles and runs on my machine:- -------start of mda1.C #include <iostream> int main() { cout << "Hello" << endl; return 1; } -------end of mda1.C
that works for me too.
As I expected :>however, amazingly, if I change it to this: ----- #include <hash_map> int main() { return 1; } ----- i get obscure compiler errors again: ... 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h' d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(38) : Error: function
template <class _Tp> ^ ... i thought it first it might be because of using unix line endings in
Never had a problem with those... Move my files around all the time...
I will have a look when I get into work on Wednesday. I will reserve comment until then :>this has got to be something basic. note that all i did was unzip the dm compiler, and unzip the stlport,
i didn't edit any config files, either ini or config.h. but that should
I think you might need certain 'defines' for STLport to work. Damian: Is there any #define that you require for your patches to go active during compilation???
You should not need to do anything to get it all to compile. It has all been preconfigured (see the digital mars README for additional information, for my test configuration). All you need to do is point the compiler to where STLport has been installed.The best person to talk to is Damian Dixon. I myself use the HP STL and SGI STL that are also available on the site. HTH Jan
Damian (Home)
Jun 05 2001
I should have noticed....... The missing command line option is '-Ab'. This instructs the compiler to define the keyword bool. The line causing the problem shows that bool is not defined (if you look at the source code). There are two configuration files (in stlport directory): stl_user_config.h This file is used by the user to tweak the library. config/stl_digital_mars.h This file contains the Compiler setup. Digital Mars only suports the STL part of STLport due to some limitations with templates. If you have any problems or fixes for STLport please let us know as the official STLport site has not yet been informed of the changes made to support this compiler. Damian. On Tue, 5 Jun 2001 21:56:04 +0100, "Damian Dixon" <damian.dixon virgin.net> wrote:Jan Knepper <jan smartsoft.cc> wrote in message news:3B1D41A1.F61EB1A7 smartsoft.cc..."Mark D. ANderson" wrote: CC:ed to c++.stl.port"Damian Dixon" <damian.dixon tenetdefence.com> wrote in message
The following code compiles and runs on my machine:- -------start of mda1.C #include <iostream> int main() { cout << "Hello" << endl; return 1; } -------end of mda1.C
that works for me too.
As I expected :>however, amazingly, if I change it to this: ----- #include <hash_map> int main() { return 1; } ----- i get obscure compiler errors again: ... 'd:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h' d:/devtools/C/dm-stlport-4.0/stlport\stl/_relops.h(38) : Error: function
template <class _Tp> ^ ... i thought it first it might be because of using unix line endings in
Never had a problem with those... Move my files around all the time...
I will have a look when I get into work on Wednesday. I will reserve comment until then :>this has got to be something basic. note that all i did was unzip the dm compiler, and unzip the stlport,
i didn't edit any config files, either ini or config.h. but that should
I think you might need certain 'defines' for STLport to work. Damian: Is there any #define that you require for your patches to go active during compilation???
You should not need to do anything to get it all to compile. It has all been preconfigured (see the digital mars README for additional information, for my test configuration). All you need to do is point the compiler to where STLport has been installed.The best person to talk to is Damian Dixon. I myself use the HP STL and SGI STL that are also available on the site. HTH Jan
Damian (Home)
Jun 06 2001