# Environment

## Build

The whole library is provided in headers. Regex variants of some algorithms, however, are dependent on the Boost.Regex library. All such algorithms are separated in boost/algorithm/string_regex.hpp. If this header is used, the application must be linked with the Boost.Regex library.

## Examples

Examples showing the basic usage of the library can be found in the libs/algorithm/string/example directory. There is a separate file for the each part of the library. Please follow the boost build guidelines to build examples using the bjam. To successfully build regex examples the Boost.Regex library is required.

## Tests

A full set of test cases for the library is located in the libs/algorithm/string/test directory. The test cases can be executed using the boost build system. For the tests of regular expression variants of algorithms, the Boost.Regex library is required.

## Portability

The library has been successfully compiled and tested with the following compilers:

- Microsoft Visual C++ 7.0
- Microsoft Visual C++ 7.1
- GCC 3.2
- GCC 3.3.1

See Boost regression tables for additional info for a particular compiler.

There are known limitation on platforms not supporting partial template specialization. Library depends on correctly implemented `std::iterator_traits` class. If a standard library provided with compiler is broken, the String Algorithm Library cannot function properly. Usually it implies that primitive pointer iterators are not working with the library functions.