我可以像這樣全域多載一元 和 - 運算子:
#include <cstdint>
enum local_states_t
{
LOCAL_STATE_A = 1,
LOCAL_STATE_B,
LOCAL_STATE_LIMIT,
};
typedef uint32_t state_type_t;
state_type_t operator-(local_states_t state) { return static_cast<state_type_t>(state | (1<<31)); }
我可以對前綴 /-- 做同樣的事情嗎?這里的問題當然是編譯器如何知道它只需要為 local_state_t 型別呼叫這些函式?前綴運算子沒有虛擬值..
uj5u.com熱心網友回復:
(來自評論)
是的 - 您可以定義local_states_t& operator (local_states_t &). 不像類,列舉不能有成員,所以你需要一個自由函式。
您也可以將其定義為 return state_type_t,這是不尋常但允許的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/440821.html
