テンプレートのデフォルト引数の構文に関する質問がたくさん寄せられていることは知っています。
通常、答えは(それがどのように機能するかについての私の理解と同期して)そのようなものを使用することです:
template <class T = SomeDefault> class T1 {};
最近、Boost でどのマップ実装が使用されているかを確認したいと思いましたmapped_vector
。そして、次のスニペットを見つけました:
template<class T, class A>
class mapped_vector:
どうやら、引数のデフォルトのバインディングはありませんが、どうやら、うまくA
インスタンス化できますmapped_vector<int>
。明らかに、デフォルトの引数は何らかの形で推論されますが、どのように?
編集:正確には、このファイルの279行目について話している