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








Damian Dixon <damian.dixon tenetdefence.com>