blob: e63f3b304570e5dddd35136e98b2ceab0d56e519 [file] [log] [blame]
Jeongik Cha1199caa2021-07-20 12:32:58 +09001TO-DOs:
2
3These are features that have been requested, and have been considered,
4but are not yet implemented, because I'm undecided about how or whether they
5should be implemented, and/or because they are difficult and/or time-consuming
6to implement.
7
8Also, some of these features tend to push libconfig toward becoming a
9general-purpose structured-data storage mechanism, which is really not the
10intended purpose of this library. I think something like sqlite is better
11suited for that sort of thing.
12
13
14* Add support for copying settings from one configuration to another. Need a
15 recursive function to copy a setting and call itself on all child settings.
16
17
18* Add a += operator, so that additional elements can be appended to a list or
19 array. The issue with this is defining a consistent syntax. For example:
20
21 x = ( 1, 2, 3 );
22 x += ( 4, 5 );
23
24 Should this result in ( 1, 2, 3, 4, 5 ), or ( 1, 2, 3, ( 4, 5 ))? I believe
25 it should be the latter. However, only the former makes sense for arrays.
26
27
28* Add the ability to insert/delete elements at any position in a list or
29 array. A simple implementation would be expensive (shift all the elements
30 by one for every insert/delete), and a more efficient implementation would
31 add a lot of complexity to the library.
32
33
34* Add limited support for preserving comments.
35
36
37* Add support for unicode strings? A bit problematic, since flex doesn't
38 support unicode input, AFAICT. But maybe supply convenience functions to
39 convert between parsed UTF-8 strings and std::wstring.