possible API - rmpowell77/liaw2015 GitHub Wiki
Maybe this is some way to construct our API
int main(int argc, char **argv)
{
auto defaults = PropertyList{ { "time_to_run", "10" }, { "user_name", "Bob" } };
using FILE_t = std::unique_ptr<FILE, std::function<int(FILE*)>>;
FILE_t fromFile(fopen("myConfig.plist"), fclose);
auto myProgramConfig = ProgramConfig::CreateProgramConfig().
CreateProgramConfig(defaults, CONFIG_SCHEMA).
CreateProgramConfig(fromFile, CONFIG_SCHEMA).
CreateProgramConfig(argc, argv, CMDLINE_SCHEMA);
}