Appendices

| Home | Libraries | People | FAQ | More

## Appendices

#### Compatibility

Property tree uses partial class template specialization. There has been no attempt to work around lack of support for this. The library will therefore most probably not work with Visual C++ 7.0 or earlier, or gcc 2.x.

Property tree has been tested (regressions successfully compiled and run) with the following compilers:

- Visual C++ 8.0
- gcc 3.4.2 (MinGW)
- gcc 3.3.5 (Linux)
- gcc 3.4.4 (Linux)
- gcc 4.3.3 (Linux)
- Intel C++ 9.0 (Linux)

#### Rationale

1. Why are there 3 versions of `get`? Couldn't there be just one? The three versions reflect experience gathered during several of years of using property tree in several different applications. During that time I tried hard to come up with one, proper form of the get function, and failed. I know of these three basic patterns of usage:
   - Just get the data and I do not care if it cannot be done. This is used when the programmer is fairly sure that data exists. Or in homework assignments. Or when tomorrow is final deadline for your project.
   - Get the data and revert to default value if it cannot be done. Used when you want to allow omitting the key in question. Implemented by some similar tools (windows INI file access functions).
   - Get the data, but I care more whether you succeeded than I do for the data itself. Used when you want to vary control flow depending on get success/failure. Or to check for presence of a key.
2. Why does the separator character come before the path and not after as one would expect? It helps with overload resolution in some cases.

#### Future Development

- More parsers: YAML, environment strings.
- More robust XML parser.
- Mathematical relations: ptree difference, union, intersection. Useful for finding configuration file changes etc.