2011-08-22 5 views

答えて

7

マットAusternによるこの古いStandard Librarian列は、このちらほら含む一般的なアロケータのかなり徹底的な議論を、持っている:

我々は、ボイドについて何をしますか?時にはコンテナがvoid ポインタを参照する必要があり、リバインドメカニズムがほとんど私たちに必要なものを与えますが、 ではありません。私たちはmalloc_allocator :: pointerのようなものを書く必要があり、voidのインスタンス化が となるように malloc_allocatorを定義しましたので、うまくいきません。 sizeof(T)を使用し、T &を指します。 Tが無効の場合、いずれも合法ではありません。 問題は次のように簡単に解決できます。 malloc_allocatorをvoidに特化し、voidポインタを参照するために必要最小限の を除いてすべてを省略します。

malloc_allocatorは、Austernが彼の例で使用するサンプルの実装ですが、一般的な場合に当てはまります。

1

voidへの参照ができないため、アロケータはvoidに特化する必要があります。

+0

誰かが実際に 'void 'のためにインスタンス化しても、それは問題にならないでしょうか? – Owen

+1

アロケータはどこに使用されていますか?あなたは私に例を教えてくれますか? –

関連する問題