我們目前正忙於從Visual Studio 2005遷移到Visual Studio 2010(使用非託管C/C++)。這意味着我們大約一半的開發人員已經在使用Visual Studio 2010,而另一半仍在使用Visual Studio 2005.最近,我遇到了一種情況,可以在Visual Studio 2010中以一種乾淨的方式編寫某種構造,但需要在Visual Studio 2005清潔少的源代碼因爲不是所有的開發商已經Visual Studio 2010中的機器上,我必須寫這樣的代碼:是否有可能讓源代碼「超時」(在某個時刻後變爲無效)?
#if _MSC_VER >= 1600
// clean version of the source code
#else
// less clean version
// of the source code
// requiring multiple lines of code
// and requiring some dirty static_casts
#endif
由於所有的開發商將被遷移到Visual Studio 2010中今年年底,我希望這段代碼在一段時間後自動'消失'。在源代碼中保留「不太乾淨的版本」會導致長期不可讀的源代碼。
當然,我知道代碼不會自動消失,所以實際上我需要一段時間後自動報警。事情是這樣的:
#if _MSC_VER >= 1600
// clean version of the source code
#else
// less clean version
// of the source code
// requiring multiple lines of code
// and requiring some dirty static_casts
#endif
#if compilation_date is after 1 november 2010
# error "Remove Visual Studio 2005 compatibility code from this file"
#endif
這樣一來,如果我們忘記了這一點,我們會自動後11月1日通報的2010年這個
此招可能需要使用DATE的,但由於這需要要由預編譯器處理,您不能執行字符串操作或使用C日期/時間函數。
我也考慮過發送自己延遲郵件的另一種想法,但我想知道是否沒有可以在源代碼中內置的解決方案。
這聽起來像清理可以很容易地腳本化,所以我不會打擾插入額外的警告,提醒開發人員刪除冗餘代碼。 – 2010-09-01 07:15:01