2011-08-22 47 views

回答

7

這個老Standard Librarian列由馬特·Austern在一般分配器,包括本珍聞的相當透徹的討論:

我們該怎麼辦關於無效?有時一個容器必須指向void 指針,並且重新綁定機制幾乎給我們提供了我們需要的東西,但是 不完全。它不起作用,因爲我們需要像malloc_allocator :: pointer那樣寫一些 ,並且我們已經定義了 malloc_allocator,以便將它實例化爲void將是 非法。它使用sizeof(T),它是指T &; T無效時均不合法。 解決方案和問題一樣簡單:專門用於 malloc_allocator,用於void,除了我們需要引用空指針所需的最小值外,其餘所有內容都不包含在內。

malloc_allocator是Austern在他的示例中使用的示例實現,但它適用於一般情況。

1

分配器需要專用於void,因爲您不能引用void

+0

儘管如此,如果有人實際將其實例化爲「void」,那麼這不僅僅是一個問題嗎? – Owen

+1

分配器在哪裏使用?你可以給我一個例子嗎? –

相關問題