簡體   English   中英

C ++ 11:函數指針表,Lambdas

[英]C++11: Table of Function Pointers, Lambdas

我目前正在為處理器設計一個簡單抽象的模擬器,並且正在使用一個表將機器代碼操作碼轉換為動作。 當前,該表包含指向委托函數的指針(由外部庫提供),這是我當時(在C ++ 11之前)唯一可以調用子類實例的成員函數的選項。

到目前為止,Lambda看起來可以提供完美的替代品,但我仍然希望支持香草函數指針。 這個關於lambdas的教程顯示了一個示例,您可以在其中對lambdas和函數指針進行相同的處理,但是我想知道是否可以存儲函數指針和lambda的混合數組,以便也可以將它們存儲在同一位置。

std :: function是一種對所有可調用事物進行類型擦除的機制。

您可以具有std :: function的集合,並將具有該簽名的函數指針放在具有該簽名的lambda旁邊。 與直接使用函數指針相比​​,會涉及一些開銷。 有意思的是,規范未指定lambda的類型,因此不能直接寫下來,但始終可以將其放入std :: function包裝器中。

暫無
暫無

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

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