現在、VisualStudio2005からVisualStudio2010への移行(アンマネージC / C ++を使用)で忙しいです。つまり、開発者の約半数はすでにVisual Studio 2010を使用しており、残りの半数はまだVisual Studio 2005を使用しています。最近、Visual Studio 2010で特定の構造をクリーンな方法で記述できる状況になりましたが、 VisualStudio2005ではクリーン度の低いソースコードが必要です。すべての開発者が既にVisualStudio2010をマシンにインストールしているわけではないため、次のようなコードを作成する必要があります。
#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
すべての開発者は今年の終わりまでにVisualStudio2010に移行するため、このコードは一定の時間が経過すると自動的に「消える」ようにします。ソースコードに「クリーン度の低いバージョン」を保持すると、長期的にはソースコードが読み取れなくなります。
もちろん、コードが自動的に消えないことは知っているので、実際には、しばらくすると自動アラームベルが必要になります。このようなもの:
#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
そうすれば、これを忘れた場合、2010年11月1日以降に自動的に通知されます。
このトリックではおそらくDATEを使用する必要がありますが、これはプリコンパイラで処理する必要があるため、文字列操作を実行したり、Cの日付/時刻関数を使用したりすることはできません。
遅延メールを送信するという別のアイデアも検討しましたが、ソースコードに組み込むことができるソリューションがないかどうか疑問に思いました。