2015-05-23 36 views
1

我一直在試圖找到一種方式來在C++中執行以下操作,但不能。我認爲沒有辦法,但有興趣,因爲我會認爲這是可能的。定義(或重新定義)編譯器將區分的類型(C++)

我想定義一個類型,它基本上是一個int的重定義,但可以區分它們。例如,它可以訪問不同的重載函數的索引(這取決於它是什麼的指標):

void ReturnSomeValue(IndexA id) 
void ReturnSomeValue(IndexB id) 

這是沒有必要的,但我認爲這將是很好的避免意外傳遞錯誤的指數到不同功能這是爲另一個設計的(因此會觸發一個編譯器錯誤'沒有對函數(IndexB)的匹配調用',而不是一個潛在的令人困惑的邏輯錯誤)。

我已經使用的typedef

typedef int IndexA 
typedef int IndexB 

嘗試,但似乎這些都是儘可能的編譯器來說不同的名稱都整數。

這可能會使用一個類或一個結構,但會涉及很多重寫,似乎對這個簡單的問題有點矯枉過正。

感謝您的任何幫助,我很想知道這是否可能!

回答

1

據我所知,typedef單獨將無法正常工作,但here是一種使用類包裝(也請參閱reddit discussion)的解決方案。

+0

感謝您的幫助。從鏈接和相應的reddit討論中,我發現我希望存在的行爲幾乎可以使用枚舉類IndexA複製:int {};所以我用過 - 非常適合我需要的! – Mike