これを説明するのは少し難しいですが、最善を尽くします。オプションを受け取る関数があるとしましょう。そのオプションは、最初は文字列になります。このようなもの:
コマンドオプション="何とか何とか"
ここで、オプションは でしたblah blah blah
。
ここで、文字列を別の型に「変換」する (キャストしない)方法を開発者に提供したいと考えています。bool
またはなどの基本的な型に対して独自の「トランスレーター」を実装int
します。たとえば、次のようになります。
コマンド recursive="true"
また
コマンドライン=7
おそらくファンクターを使用して、開発者がそれらをオーバーライドしたり、新しいものを指定したりできるようにします(私はC++ 11を使用しているため、wonderfulを使用しても問題ありませんfunctional
)。
問題は、これを実装する方法について受け入れられるアイデアがまだ見つからないことです。C++ に関する私の知識に基づいていくつかのことを試しましたが、これは間違いなく「完全」ではなく「許容範囲」ですが、それらの多くは機能しなかったか、行き詰まってしまいました。つまり、いくつかの汚いトリックを使用できますが、これには最もエレガントなソリューションが必要です(もちろん、タイプセーフです)。
私はあなたとのろくでなしではないことを願っています。お時間をいただきありがとうございます。
よろしく、カルリッシュ