いくつかのブーストライブラリはヘッダのみであり、いくつかはそうではなく、さまざまな理由からです。Boost.ProgramOptionsがヘッダのみでないのはなぜですか?
Boost.ProgramOptions
はヘッダのみではない特定の理由または設計上の理由はありますか?
私はドキュメントの「小さな」ライブラリであると主張しており、システム関連の理由(スレッドやasioなど)は表示されません。
いくつかのブーストライブラリはヘッダのみであり、いくつかはそうではなく、さまざまな理由からです。Boost.ProgramOptionsがヘッダのみでないのはなぜですか?
Boost.ProgramOptions
はヘッダのみではない特定の理由または設計上の理由はありますか?
私はドキュメントの「小さな」ライブラリであると主張しており、システム関連の理由(スレッドやasioなど)は表示されません。
1つの定義ルール違反のために、すべてのC++コードが単なるヘッダーに書き込まれるわけではありません。
たとえば、あるクラスのメンバーstatic
の記憶予約は、正確に1つの翻訳単位にする必要があります(将来のC++標準ではそれを回避することができます)。
ブーストがヘッダーのみであることが本来の目的でしたが、すぐにその願望を放棄しなければなりませんでした。
プログラムのオプションは小さいと主張していますが、Regexの後に2番目に大きなライブラリを作成しています。 (これは、ファイルシステムとスレッドライブラリを強化するよりも大きい)私は、あなたが含まれているヘッダーのトンでプロジェクトを窒息させるのではなく、ライブラリを構築していることをうれしく思います。おそらく、作者は、開始時には小さく、コメントの変更や機能の追加を続けて忘れていたと考えました。
おそらく私の答えはあなたをひいきにしています。 upvoteを持っているので、専門家が答えるかもしれません。 – Bathsheba
これを行う必要があるかどうかわかりませんが、ほとんどのコードが '.cpp'ファイルにあり、ヘッダーのみであることを試みていないようです:https://github.com/ boostorg/program_options –
Vladimir Prus(http://vladimirprus.com/)に彼に答えがあるかどうかを知らせる電子メールを送りたいかもしれません。 – sigbjornlo