8
我只是很好奇boost::variant
的實現。boost :: variant implementation
這樣工作嗎?
兩個成員:
- 表示(對於第一模板參數的第二個模板參數等即0,1)
- 所有可能類型的聯合當前存儲的類型(A號碼這當然最大的尺寸)。
apply_visitor()
:
有代表來調用正確的超負荷當前存儲的類型數量switch
聲明(這將在最壞的情況下被編譯爲跳轉表所以需要一定的時間)。
我知道還有一些優化,它可以確保boost::variant
不需要動態分配內存作爲詳細here,但我想我得到這些。
你實際上可以看看源代碼,甚至文檔可能會告訴它如何實現。我希望有一個緩衝區(足夠類型的char數組)和一個標籤來決定如何解釋緩衝區。 –
提前道歉,但你已經看過來源,對嗎?你應該能夠弄清楚它是如何工作的,無論是通過研究源代碼,或者構建一個測試應用程序,並通過一個調試器來完成,不是嗎? – Bukes