TO-DOs:

These are features that have been requested, and have been considered,
but are not yet implemented, because I'm undecided about how or whether they
should be implemented, and/or because they are difficult and/or time-consuming
to implement.

Also, some of these features tend to push libconfig toward becoming a
general-purpose structured-data storage mechanism, which is really not the
intended purpose of this library. I think something like sqlite is better
suited for that sort of thing.


* Add support for copying settings from one configuration to another. Need a
  recursive function to copy a setting and call itself on all child settings.


* Add a += operator, so that additional elements can be appended to a list or
  array. The issue with this is defining a consistent syntax. For example:

  x = ( 1, 2, 3 );
  x += ( 4, 5 );

  Should this result in ( 1, 2, 3, 4, 5 ), or ( 1, 2, 3, ( 4, 5 ))? I believe
  it should be the latter. However, only the former makes sense for arrays.


* Add the ability to insert/delete elements at any position in a list or
  array. A simple implementation would be expensive (shift all the elements
  by one for every insert/delete), and a more efficient implementation would
  add a lot of complexity to the library.


* Add limited support for preserving comments.


* Add support for unicode strings? A bit problematic, since flex doesn't
  support unicode input, AFAICT. But maybe supply convenience functions to
  convert between parsed UTF-8 strings and std::wstring.
