Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
January 09, 2003 dm832c.zip + stlport | ||||
---|---|---|---|---|
| ||||
I downloaded and installed the 832 compiler, and then the stlport from the DM website. Now I can't compilet what was a working build...:( sc -c -mn -5 -a8 -Ae -g -c -I..\include -I$c:\sleepycat\dbinc -mn -5 -a8 -Ae -g -DDEBUG -DFOX_BIGENDIAN=0 -DWIN32 -D_WINDOWS -DHAVE_OPENGL MyLife.cpp C:\DM\BIN\..\include\stl/_alloc.h(134) : Error: undefined identifier '__stl_new' C:\DM\BIN\..\include\stl/_alloc.h(135) : Error: undefined identifier '__stl_delete' typedef fpos<mbstate_t> streampos; ^ C:\DM\BIN\..\include\stl/char_traits.h(116) : Error: type-argument expected for parameter '_StateT' of template 'fpos' typedef fpos<mbstate_t> wstreampos; ^ C:\DM\BIN\..\include\stl/char_traits.h(117) : Error: type-argument expected for parameter '_StateT' of template 'fpos' const string *pdbTasks; ^ mylife.h(50) : Error: ';' expected following declaration of struct member Fatal error: too many errors --- errorlevel 1 Thanks Michael |
January 09, 2003 Re: dm832c.zip + stlport | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Comperchio | Try adding: using namespace::std; to your source. Also, to use STLport you'll need a -I\dm\stlport, what you're using here is the SGI STL. "Mike Comperchio" <mcmprch@adelphia.net> wrote in message news:avkcfv$1u22$1@digitaldaemon.com... > I downloaded and installed the 832 compiler, and then the stlport from the DM website. Now I can't compilet what was a working build...:( > > > sc -c -mn -5 -a8 -Ae -g -c -I..\include -I$c:\sleepycat\dbinc -mn -5 -a8 -Ae > -g -DDEBUG -DFOX_BIGENDIAN=0 -DWIN32 -D_WINDOWS -DHAVE_OPENGL MyLife.cpp > C:\DM\BIN\..\include\stl/_alloc.h(134) : Error: undefined identifier > '__stl_new' > C:\DM\BIN\..\include\stl/_alloc.h(135) : Error: undefined identifier > '__stl_delete' > typedef fpos<mbstate_t> streampos; > ^ > C:\DM\BIN\..\include\stl/char_traits.h(116) : Error: type-argument expected > for parameter '_StateT' of template 'fpos' > typedef fpos<mbstate_t> wstreampos; > ^ > C:\DM\BIN\..\include\stl/char_traits.h(117) : Error: type-argument expected > for parameter '_StateT' of template 'fpos' > const string *pdbTasks; > ^ > mylife.h(50) : Error: ';' expected following declaration of struct member > Fatal error: too many errors > --- errorlevel 1 > > Thanks > Michael > > |
January 09, 2003 Re: dm832c.zip + stlport | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | that got me further, I still have a question... this code: template <class _Key, class _Tp, __DFL_TMPL_PARAM(_Compare, less<_Key> ), _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > class map { public: // typedefs: typedef _Key key_type; typedef _Tp data_type; typedef _Tp mapped_type; typedef pair<const _Key, _Tp> value_type; typedef _Compare key_compare; class value_compare : public binary_function<value_type, value_type, bool> { friend class map<_Key,_Tp,_Compare,_Alloc>; protected : _Compare _M_comp; value_compare(_Compare __c) : _M_comp(__c) {} public: bool operator()(const value_type& __x, const value_type& __y) const { return _M_comp(__x.first, __y.first); } }; produces: sc D:\MYSQL++\EXAMPLES\resetdb.cpp -Ae -mn -C -WA -S -3 -a8 -c -gf -D_CONSOLE=1 -Ic:\dm\stlport -Ic:\mysql\include -Id:\mysql++\include -oD:\MYSQL++\EXAMPL ES\resetdb.obj Error: c:\dm\stlport\stl/_map.h(63): need explicit cast for function parameter 1 to get c:\dm\stlport\stl/_map.h(63): from: const Type_info*const c:\dm\stlport\stl/_map.h(63): to : Type_info* "Walter" <walter@digitalmars.com> wrote in message news:avkd9e$1ug2$1@digitaldaemon.com... > Try adding: > using namespace::std; > to your source. Also, to use STLport you'll need a -I\dm\stlport, what > you're using here is the SGI STL. > > "Mike Comperchio" <mcmprch@adelphia.net> wrote in message news:avkcfv$1u22$1@digitaldaemon.com... > > I downloaded and installed the 832 compiler, and then the stlport from the > > DM website. Now I can't compilet what was a working build...:( > > > > > > > sc -c -mn -5 -a8 -Ae -g -c -I..\include -I$c:\sleepycat\dbinc -mn -5 -a8 -Ae > > -g -DDEBUG -DFOX_BIGENDIAN=0 -DWIN32 -D_WINDOWS -DHAVE_OPENGL MyLife.cpp > > C:\DM\BIN\..\include\stl/_alloc.h(134) : Error: undefined identifier > > '__stl_new' > > C:\DM\BIN\..\include\stl/_alloc.h(135) : Error: undefined identifier > > '__stl_delete' > > typedef fpos<mbstate_t> streampos; > > ^ > > C:\DM\BIN\..\include\stl/char_traits.h(116) : Error: type-argument > expected > > for parameter '_StateT' of template 'fpos' > > typedef fpos<mbstate_t> wstreampos; > > ^ > > C:\DM\BIN\..\include\stl/char_traits.h(117) : Error: type-argument > expected > > for parameter '_StateT' of template 'fpos' > > const string *pdbTasks; > > ^ > > mylife.h(50) : Error: ';' expected following declaration of struct member > > Fatal error: too many errors > > --- errorlevel 1 > > > > Thanks > > Michael > > > > > > |
January 09, 2003 Re: dm832c.zip + stlport | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Comperchio | I don't know. STL has lots of dependencies on things, and without a complete example, there's not much I can suggest except to try whittling down the example to the smallest one that will reproduce it. Also, there is no \dm\include\stl directory on the official release. "Mike Comperchio" <mcmprch@adelphia.net> wrote in message news:avkge3$20in$1@digitaldaemon.com... > that got me further, I still have a question... > > this code: > > template <class _Key, class _Tp, __DFL_TMPL_PARAM(_Compare, less<_Key> ), > _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > > class map { > public: > > // typedefs: > > typedef _Key key_type; > typedef _Tp data_type; > typedef _Tp mapped_type; > typedef pair<const _Key, _Tp> value_type; > typedef _Compare key_compare; > > class value_compare > : public binary_function<value_type, value_type, bool> { > friend class map<_Key,_Tp,_Compare,_Alloc>; > protected : > _Compare _M_comp; > value_compare(_Compare __c) : _M_comp(__c) {} > public: > bool operator()(const value_type& __x, const value_type& __y) const { > return _M_comp(__x.first, __y.first); > } > }; > > produces: > sc > D:\MYSQL++\EXAMPLES\resetdb.cpp -Ae -mn -C -WA -S -3 -a8 -c -gf -D_CONSOLE=1 > -Ic:\dm\stlport -Ic:\mysql\include -Id:\mysql++\include -oD:\MYSQL++\EXAM PL > ES\resetdb.obj > > Error: c:\dm\stlport\stl/_map.h(63): need explicit cast for function > parameter 1 to get > c:\dm\stlport\stl/_map.h(63): from: const Type_info*const > c:\dm\stlport\stl/_map.h(63): to : Type_info* > > "Walter" <walter@digitalmars.com> wrote in message news:avkd9e$1ug2$1@digitaldaemon.com... > > Try adding: > > using namespace::std; > > to your source. Also, to use STLport you'll need a -I\dm\stlport, what > > you're using here is the SGI STL. > > > > "Mike Comperchio" <mcmprch@adelphia.net> wrote in message news:avkcfv$1u22$1@digitaldaemon.com... > > > I downloaded and installed the 832 compiler, and then the stlport from > the > > > DM website. Now I can't compilet what was a working build...:( > > > > > > > > > > > > sc -c -mn -5 -a8 -Ae -g -c -I..\include -I$c:\sleepycat\dbinc -mn -5 -a8 -Ae > > > -g -DDEBUG -DFOX_BIGENDIAN=0 -DWIN32 -D_WINDOWS -DHAVE_OPENGL > MyLife.cpp > > > C:\DM\BIN\..\include\stl/_alloc.h(134) : Error: undefined identifier > > > '__stl_new' > > > C:\DM\BIN\..\include\stl/_alloc.h(135) : Error: undefined identifier > > > '__stl_delete' > > > typedef fpos<mbstate_t> streampos; > > > ^ > > > C:\DM\BIN\..\include\stl/char_traits.h(116) : Error: type-argument > > expected > > > for parameter '_StateT' of template 'fpos' > > > typedef fpos<mbstate_t> wstreampos; > > > ^ > > > C:\DM\BIN\..\include\stl/char_traits.h(117) : Error: type-argument > > expected > > > for parameter '_StateT' of template 'fpos' > > > const string *pdbTasks; > > > ^ > > > mylife.h(50) : Error: ';' expected following declaration of struct > member > > > Fatal error: too many errors > > > --- errorlevel 1 > > > > > > Thanks > > > Michael > > > > > > > > > > > > |
January 09, 2003 Re: dm832c.zip + stlport | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter | Oh well...I'll putz with it a while. I really, really, really, really want to use DM! and not MSnerd Thanks for quick response...have a great day... Michael "Walter" <walter@digitalmars.com> wrote in message news:avkik4$21tv$1@digitaldaemon.c om... > I don't know. STL has lots of dependencies on things, and without a complete > example, there's not much I can suggest except to try whittling down the example to the smallest one that will reproduce it. Also, there is no \dm\include\stl directory on the official release. > > "Mike Comperchio" <mcmprch@adelphia.net> wrote in message news:avkge3$20in$1@digitaldaemon.com... > > that got me further, I still have a question... > > > > this code: > > > > template <class _Key, class _Tp, __DFL_TMPL_PARAM(_Compare, less<_Key> ), > > _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > > > class map { > > public: > > > > // typedefs: > > > > typedef _Key key_type; > > typedef _Tp data_type; > > typedef _Tp mapped_type; > > typedef pair<const _Key, _Tp> value_type; > > typedef _Compare key_compare; > > > > class value_compare > > : public binary_function<value_type, value_type, bool> { > > friend class map<_Key,_Tp,_Compare,_Alloc>; > > protected : > > _Compare _M_comp; > > value_compare(_Compare __c) : _M_comp(__c) {} > > public: > > bool operator()(const value_type& __x, const value_type& __y) const { > > return _M_comp(__x.first, __y.first); > > } > > }; > > > > produces: > > sc > > > D:\MYSQL++\EXAMPLES\resetdb.cpp -Ae -mn -C -WA -S -3 -a8 -c -gf -D_CONSOLE=1 > > -Ic:\dm\stlport -Ic:\mysql\include -Id:\mysql++\include -oD:\MYSQL++\EXAM > PL > > ES\resetdb.obj > > > > Error: c:\dm\stlport\stl/_map.h(63): need explicit cast for function > > parameter 1 to get > > c:\dm\stlport\stl/_map.h(63): from: const Type_info*const > > c:\dm\stlport\stl/_map.h(63): to : Type_info* > > > > "Walter" <walter@digitalmars.com> wrote in message news:avkd9e$1ug2$1@digitaldaemon.com... > > > Try adding: > > > using namespace::std; > > > to your source. Also, to use STLport you'll need a -I\dm\stlport, what > > > you're using here is the SGI STL. > > > > > > "Mike Comperchio" <mcmprch@adelphia.net> wrote in message news:avkcfv$1u22$1@digitaldaemon.com... > > > > I downloaded and installed the 832 compiler, and then the stlport from > > the > > > > DM website. Now I can't compilet what was a working build...:( > > > > > > > > > > > > > > > > > > sc -c -mn -5 -a8 -Ae -g -c -I..\include -I$c:\sleepycat\dbinc -mn -5 -a8 -Ae > > > > -g -DDEBUG -DFOX_BIGENDIAN=0 -DWIN32 -D_WINDOWS -DHAVE_OPENGL > > MyLife.cpp > > > > C:\DM\BIN\..\include\stl/_alloc.h(134) : Error: undefined identifier > > > > '__stl_new' > > > > C:\DM\BIN\..\include\stl/_alloc.h(135) : Error: undefined identifier > > > > '__stl_delete' > > > > typedef fpos<mbstate_t> streampos; > > > > ^ > > > > C:\DM\BIN\..\include\stl/char_traits.h(116) : Error: type-argument > > > expected > > > > for parameter '_StateT' of template 'fpos' > > > > typedef fpos<mbstate_t> wstreampos; > > > > ^ > > > > C:\DM\BIN\..\include\stl/char_traits.h(117) : Error: type-argument > > > expected > > > > for parameter '_StateT' of template 'fpos' > > > > const string *pdbTasks; > > > > ^ > > > > mylife.h(50) : Error: ';' expected following declaration of struct > > member > > > > Fatal error: too many errors > > > > --- errorlevel 1 > > > > > > > > Thanks > > > > Michael > > > > > > > > > > > > > > > > > > > > |
January 09, 2003 Re: dm832c.zip + stlport | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Comperchio |
The code snippet below is the header from the STL map container, and will not help diagnose the problem.. in your case, the problem is a faulty "less" predicate:
struct Test {
Test() { }
~Test() { }
int i; // non trivial
};
struct less {
bool operator()(Test& t, Test& r) { return true; }
};
std::map<Test, int, less> m;
void main() { }
The code above generates an error in line 63 of _map.h because it expects the "less" predicate to define an operator() like:
bool operator()(const Test& t, const Test& r) { return true; }
I am sure that others will be willing to help you if you provide more details of source code that *uses* the compiler or *uses* STL.
Hope this helps get you moving along,
Richard
>> > template <class _Key, class _Tp, __DFL_TMPL_PARAM(_Compare,
>less<_Key> ),
>> > _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) >
>> > class map {
|
January 09, 2003 Re: dm832c.zip + stlport | ||||
---|---|---|---|---|
| ||||
Posted in reply to Richard | "Richard" <fractal@clark.net> wrote in message news:avkn3m$24qs$1@digitaldaemon.com... > The code above generates an error in line 63 of _map.h because it expects the > "less" predicate to define an operator() like: > > bool operator()(const Test& t, const Test& r) { return true; } Thanks for figuring this out. One of the major weaknesses of STL is trying to figure out what is wrong when things go wrong with it. |
Copyright © 1999-2021 by the D Language Foundation