現在、私はこのコードを持っています:
if(!variables["width"].defaulted())
{
configTree.put(treeNames["width"], variables["width"].as<int>());
}
if(!variables["height"].defaulted())
{
configTree.put(treeNames["height"], variables["height"].as<int>());
}
if(!variables["fullscreen"].defaulted())
{
configTree.put(treeNames["fullscreen"], variables["height"].as<int>());
}
私はこれを簡単にしようとしています。私を止める唯一のことは、将来 std::string 変数も持つことです。つまり、すべての値を単純にループして as() を使用しても機能しません。
as<>() に boost::any を使用しようと考えましたが、うまくいきません (テンプレート エラーの負荷)。また、どのタイプになるかを指定する値を持つタプルを用意し、それを切り替えて適切な as<>() を呼び出すことも検討しましたが、それはやり過ぎのようです。
これを簡単にする方法はありますか?