簡體   English   中英

函數指針在C ++中返回另一個帶有locality的函數指針

[英]function pointer returning another function pointer in C++ with locality

考慮到指向函數的指針返回另一個指向另一個函數的指針的事實是C中用於引入一些運行時多態性/回調的機制,在C ++中實現它的同等方法是什么,同時改善了局部性並降低了指針和間接的成本?

例如, 這個語法糖可以幫助,但我對此並不感興趣,盡管它是用C ++方式做事而不是更多C-ish typedef ,我更感興趣的是在嘗試減少時改善局部性在運行時使用顯式指針。

人們在C中使用函數指針來模擬多態性的真正原因不是性能,而是C既不支持真正的多態也不支持模板。 這些是C ++中的兩個替代方案。 這個主題中比較了所有三種方法。

請注意,即使調用函數指針不需要虛函數調用執行的額外vtable查找,調用虛函數和函數指針也會遇到相同的主要性能問題:兩種情況下的分支預測都不可靠,並且您傾向於結束更多管道沖洗。

我認為您可以使用虛擬功能來滿足部分要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM