在我的代碼中,我一直在重寫static_cast<int *>
大約一百萬次,是否有重新定義關鍵字的方法,以便每當我調用它時它都做同樣的事情?創建「快捷方式」類似於宏的定義
例如
cast
會做同樣的事情,static_cast<int *>
在我的代碼中,我一直在重寫static_cast<int *>
大約一百萬次,是否有重新定義關鍵字的方法,以便每當我調用它時它都做同樣的事情?創建「快捷方式」類似於宏的定義
例如
cast
會做同樣的事情,static_cast<int *>
static_cast
有一個好處,即C++程序員可以準確識別它是什麼,而無需去找到#define
或其他語句。我強烈建議您繼續使用static_cast
。
但是,我的假設是您的問題是所需的按鍵次數,所以最好的解決方案是使用支持宏的文本編輯器。這樣一來,該結束了保存代碼的功能使用標準static_cast<T>(x)
語法,但你可能只需要輸入一些諸如[小號Ç]標籤牛逼標籤X標籤。
有關如何操作的信息將在此類編輯的文檔中找到。我不是那些高度可定製編輯的忠實粉絲,所以具體內容超出了我的理解。
謝謝,我想堅持這一點。 –
問計更簡單的方式做一些危險的&hellip;
是的,有很多的方式來完成你要求什麼,包括
C++模板,
宏定義,
編輯器的快捷方式,
定製預處理,
訓練有素的猴子修復了代碼。
但是,您所完成的所有工作都是爲了讓您的代碼更加友好。
相反,試圖找出你如何經常丟失類型信息,這樣你就必須手工把它放回去,可以這麼說。
一般的解決方案是,非常簡單地,而不是首先扔掉類型信息。
我看不出最後3種解決方案如何減少代碼。另外:我可以有猴子嗎? (她是否也修復錯誤?) –
您的意思是?
#define SCAST(T,X) static_cast<T>(X);
我應該警告你,雖然通常這樣定義的過度使用會使你的代碼變得模糊和難以理解。
更重要的是,你必須注意用宏,因爲它們可能會導致很難找到,例如錯誤:
#define SQUARE(X) = X*X;
那麼,如果你調用此方法x++
,預處理器會做一個文字替換和你將會以(x++)*(x++);
結束,這意味着它不會是您正在尋找的答案,並且讓事情變得更糟,因爲替換髮生在幕後,您將很難找到原因。
我會建議你改爲查看模板函數或者只是內聯幫助函數,這樣可以安全並避免我指出的問題。
當你說重寫,你確定正則表達式不能幫助嗎? – chris
我建議不要這樣做 - 隨着時間的推移,這使得代碼無法讀取 - 相反,我建議Mavis Beacon,並學會更快地輸入:-)(嚴重時我輸入100wpm左右) –
如果有任何安慰,你可以配置IDE, 「sc」或任何你想要的,點擊一個熱鍵,並將其擴展到'static_cast <|>'。 – chris