Note For Visual C++ Users

## Known problems

#### Compiling

- If your program is multi-threaded, make sure you defined macro `_REENTRANT` to enable proper synchronization (if you are using SGI node allocator. If you are using new_alloc or malloc_alloc, you won't need that).
- You may encounter problems using `<iostream>` in mix with SGI STL `<string>, <stdexcept>` without defining _STLP_USE_OWN_NAMESPACE. Using _STLP_USE_OWN_NAMESPACE is the most safe way to cooperate with new I/O
  library and is definitely recommended unless you recompile the whole C++ std library with STLport installed.
- `_STLP_USE_EXCEPTIONS` is being defined automatically if the compiler defined `_CPPUNWIND` macro ("`/GX`" option). So you should not worry about it.
- There were reports that Visual C++ 4.0 have problems with namespaces in certain cases. Due to that, `_STLP_NO_NAMESPACES` defined for it in <stlcomp.h>.
- You may encounter problems with too long symbols when compiling with debug information. To handle this, try defining `_STLP_USE_ABBREVS` in `stlcomp.h`.
- You may experience problems with default SGI node allocator. I had no such problems, though. Default node allocator is quite fast, so I wouldn't recommend disabling it without serious reason. However, if it causes problems, define `_STLP_USE_MALLOC` or `_STLP_USE_NEWALLOC` to get bare malloc()-based or new()-based default allocator.
- If your program is multi-threaded, make sure you defined macro `_REENTRANT` to enable proper synchronization.
- [ VC++ 4.2 and higher] This version allows use of new-style <iostream>, <string> with STLport , as well as the old-style <iostream.h> . The default is new <iostream> usage.
If you want to use old-style <iostream.h> in your project:

- define macro _STLP_NO_NEW_IOSTREAMS in <stl_user_config.h> or at the command line.

If you are going to use new-style <iostream> without defining _STLP_USE_OWN_NAMESPACE:

- You may have to edit relative (or set full) path to VC++ native headers`` in <stl_user_config.h>. Using native versions is necessary to avoid clashes with compiled code in C++ runtime library.
- In the whole project, use coherent set of headers : all new-style.

- You may also try SGI STL adapted for MSVC++ 5.0 only, by Wayne Ouchida. (Note : looks like it's out of date and discontinued. It doesn't provide debug support and other extensions of this adaptation).

## Migration notes

You should experience no other problems migrating from VC++ STL to SGI STL. Default `allocator<T>` in this adaptation is fully functional.

#### Versions prior to 4.0

Visual C++ older than 4.0 won't compile STL. You have to upgrade.

| Table of Contents
| Copyright 2001 by STLport