Thread overview
Something wrong
Jan 30, 2003
vvmyx
Jan 30, 2003
Christof Meerwald
Feb 21, 2003
James W. Jennnings
January 30, 2003
Dear Walter!
Thanks you for the best in the world the compiler C++!
But some examples (ver 8.32 with stlport):
===================== Example 1 (Win32)=====================:
#include <bitset>
#include <string>
#include <map>
#include <iostream>

using namespace std;

void main(void)
{
map<char* , int> mymap;
mymap["First"] = 1;
mymap["Second"] = 2;

std::bitset < 32 > b = 0x12121212UL;
std::cout << "Hello" << std::endl;
std::cout << mymap["First"] << std::endl ;
std::cout << mymap["Second"] << std::endl;
std::cout << b << std::endl;
std::cout << "END" << std::endl;
}
compile with: sc hello.cpp
All Ok
=============  Example 2 (same source)  =====================:
D:\example>sc -msd hello.cpp
using _STLP_VENDOR_CSTD::fgetwc;
^
e:\dm832\bin\..\stlport\stlport\cwchar(199) : Error: undefined dentifier
'fgetwc'
using _STLP_VENDOR_CSTD::fgetws;
^
e:\dm832\bin\..\stlport\stlport\cwchar(200) : Error: undefined dentifier 'fgetw
s'
.........  SKIP ...............
Fatal error: too many errors
--- errorlevel 1

=============  Example 3 (same source)  =====================:
#include <bitset>
#include <string>
#include <map>
#include <iostream>
using namespace std;
void main(void)
{
map<char* , int> mymap;
mymap["First"] = 1;
mymap["Second"] = 2;

std::bitset < 32 > b = 0x12121212UL;
std::cout << "Hello" << std::endl;
std::cout << mymap["First"] << std::endl ;
std::cout << mymap["Second"] << std::endl;
std::cout << b << std::endl;
std::cout << "END" << std::endl;
}

+ in stl_dm.h:
//# undef _STLP_NO_NAMESPACES
#define _STLP_NO_NAMESPACES
sc -msd hello.cpp
using namespace std;
^
hello.cpp(8) : Error: identifier expected
mymap["First"] = 1;
^
hello.cpp(13) : Error: integral expression expected
mymap["Second"] = 2;
^
hello.cpp(14) : Error: integral expression expected
std::cout << "Hello" << std::endl;
^
hello.cpp(17) : Error: '_STLP_cout' previously declared as something else
It was declared as: basic_ostream<char ,char_traits<char > >
It is now declared: int
std::cout << mymap["First"] << std::endl ;
^
hello.cpp(18) : Error: '_STLP_cout' previously declared as something else
Fatal error: too many errors
--- errorlevel 1

Ok, change source:
=============  Example 4 =====================:
#include <bitset>
#include <string>
#include <map>
#include <iostream>
//using namespace std;
void main(void)
{
std::map<char* , int> mymap;
mymap["First"] = 1;
mymap["Second"] = 2;

std::bitset < 32 > b = 0x12121212UL;
std::cout << "Hello" << std::endl;
std::cout << mymap["First"] << std::endl ;
std::cout << mymap["Second"] << std::endl;
std::cout << b << std::endl;
std::cout << "END" << std::endl;
}

+ in stl_dm.h:
//# undef _STLP_NO_NAMESPACES
#define _STLP_NO_NAMESPACES

example>sc -msd hello.cpp
link hello/noi;
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

hello.obj(hello)
Error 42: Symbol Undefined ?_M_throw_failure@ios_base@@IACXXZ (void pascal ios_
base::_M_throw_failure(void ))
hello.obj(hello)
Error 42: Symbol Undefined ?__stl_throw_length_error@@YAXPBD@Z (void cdecl __st
l_throw_length_error(char const *))
hello.obj(hello)
Error 42: Symbol Undefined ?_M_increment@?$_Rb_global@_N@@SAPAU_Rb_tree_node_ba
se@@PAU2@@Z
hello.obj(hello)
Error 42: Symbol Undefined ?_M_decrement@?$_Rb_global@_N@@SAPAU_Rb_tree_node_ba
se@@PAU2@@Z
hello.obj(hello)
Error 42: Symbol Undefined ?_Rebalance@?$_Rb_global@_N@@SAXPAU_Rb_tree_node_bas
e@@AAPAU2@@Z
hello.obj(hello)
Error 42: Symbol Undefined ??0locale@@QAC@ABV0@@Z (pascal locale::locale(locale
const &))
hello.obj(hello)
Error 42: Symbol Undefined ??1locale@@QAC@XZ (pascal locale::~locale(void ))
hello.obj(hello)
Error 42: Symbol Undefined ?_M_use_facet@locale@@QBCPAVfacet@1@ABVid@1@@Z (face
t::locale *pascal locale::_M_use_facet(id::locale const &)const )
hello.obj(hello)
Error 42: Symbol Undefined ??1ios_base@@UAC@XZ (pascal ios_base::~ios_base(void
))
hello.obj(hello)
Error 42: Symbol Undefined ??0Init@ios_base@@QAC@XZ (pascal ios_base::Init::Ini
t(void ))
hello.obj(hello)
Error 42: Symbol Undefined ??0_Loc_init@ios_base@@QAC@XZ (pascal ios_base::_Loc
_init::_Loc_init(void ))
hello.obj(hello)
Error 42: Symbol Undefined ??1_Loc_init@ios_base@@QAC@XZ (pascal ios_base::_Loc
_init::~_Loc_init(void ))
hello.obj(hello)
Error 42: Symbol Undefined ??1Init@ios_base@@QAC@XZ (pascal ios_base::Init::~In
it(void ))
hello.obj(hello)
Error 42: Symbol Undefined ?_STLP_cout@@3V?$basic_ostream@DV?$char_traits@D@@@@
A (basic_ostream<char ,char_traits<char > > _STLP_cout)
--- errorlevel 14

Ok. add string in stl_dm.h:
=============  Example 5 =====================:
# define _STLP_NO_NEW_IOSTREAMS
source as above:
example>sc -msd hello.cpp
link hello/noi;
30.01.2003  13:23            31.826 hello.exe  !!!!!!!!!!!!!!!!!
I happy

BUT:
add one string
=============  Example 6 =====================:
#include <sstream>  //<-------  this
#include <bitset>
#include <string>
#include <map>
#include <iostream>
//using namespace std;
void main(void)
{
std::map<char* , int> mymap;
mymap["First"] = 1;
mymap["Second"] = 2;

std::bitset < 32 > b = 0x12121212UL;
std::cout << "Hello" << std::endl;
std::cout << mymap["First"] << std::endl ;
std::cout << mymap["Second"] << std::endl;
std::cout << b << std::endl;
std::cout << "END" << std::endl;
}
example>sc -msd hello.cpp
Fatal error: unable to open input file '../include/sstream'
--- errorlevel 1
:(((((((

next try:
example>sc hello.cpp
Fatal error: unable to open input file '../include/sstream'
--- errorlevel 1
:(((((((

Copy original stl_dm.h to stlport and try again:
example>sc hello.cpp
link hello,,,user32+kernel32/noi;
30.01.2003  13:32           369.180 hello.exe  OOOOOOOOOO!!!!!!!
next
example>sc -msd hello.cpp
Many errors...

With best regards. vvmyx




January 30, 2003
On Thu, 30 Jan 2003 10:30:56 +0000 (UTC), vvmyx wrote:
> But some examples (ver 8.32 with stlport):

Edit stlport\config\stl_dm.h and replace

# define _STLP_NO_OWN_NAMESPACE

with:

# if !defined(_WIN32)
#  define _STLP_NO_NEW_IOSTREAMS
#  define _STLP_NO_NATIVE_WIDE_FUNCTIONS
# endif

# if defined(_STLP_NO_NEW_IOSTREAMS) || defined(_STLP_NO_OWN_IOSTREAMS)
#  define _STLP_OWN_NAMESPACE
# else
#  define _STLP_NO_OWN_NAMESPACE
# endif


(or get the updated STLport patch from http://cmeerw.org/prog/dm/stl.html)


[...]
> add one string
>=============  Example 6 =====================:
> #include <sstream>  //<-------  this
> example>sc -msd hello.cpp
[...]
> Fatal error: unable to open input file '../include/sstream'
> --- errorlevel 1

DM's iostreams don't implement <sstream> and STLport's iostreams only work on Win32 platforms...


bye, Christof

-- 
http://cmeerw.org                                 JID: cmeerw@jabber.at mailto cmeerw at web.de

...and what have you contributed to the Net?
February 21, 2003
"Christof Meerwald" <cmeerw@web.de> wrote in message news:b1b7nk$5di$1@digitaldaemon.com...
> On Thu, 30 Jan 2003 10:30:56 +0000 (UTC), vvmyx wrote:
> > But some examples (ver 8.32 with stlport):
>
>
>On Thu, 30 Jan 2003 10:30:56 +0000 (UTC), vvmyx wrote:
>> But some examples (ver 8.32 with stlport):
>
>(or get the updated STLport patch from http://cmeerw.org/prog/dm/stl.html)
>

Christof, I have downloaded your patch to the STL-4.5.3 directory. It arrived as
  STLport-4.5.3-dm.diff.txt. I deleted the ".txt" and tried the command
    patch -sp1 <..\STLport-4.5.3-dm.diff
I got a "file not found" error. What is my problem?
Jim Jennings