我想重新定義位移運算符在一個64位無符號整數在C++中,我可以這樣說,x<<d
,其中x
是一個64位整數和d
是一個整數與|d|<64
,使其等效到x<<d
的d>0
和x>>|d|
的d<0
。重新定義已定義類型的單個運算符。 C++
我知道如何做到這一點的唯一方法是定義一個全新的類並重載運算符,但我認爲這也意味着我需要重載我需要的所有其他運算符(除非有一個技巧,我不知道),這看起來有點愚蠢,因爲我希望它們的行爲與預定義類型完全相同。這只是我想改變的偏移。目前,我剛剛寫了一個名爲'shift'的函數來做到這一點,儘管它工作正常,但它看起來並不是很好的C++ ish。
什麼是風格正確的方式來做我所需要的?
感謝
「照'int's可以。「 –