Jeongik Cha | 1199caa | 2021-07-20 12:32:58 +0900 | [diff] [blame] | 1 | TO-DOs: |
| 2 | |
| 3 | These are features that have been requested, and have been considered, |
| 4 | but are not yet implemented, because I'm undecided about how or whether they |
| 5 | should be implemented, and/or because they are difficult and/or time-consuming |
| 6 | to implement. |
| 7 | |
| 8 | Also, some of these features tend to push libconfig toward becoming a |
| 9 | general-purpose structured-data storage mechanism, which is really not the |
| 10 | intended purpose of this library. I think something like sqlite is better |
| 11 | suited 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. |