TopCoderのコンパイラバージョンって判別むずかしい…
Java
バージョンを調べるAPI。
public void printVersion() { System.out.println(System.getProperty("java.version")); }
上記を実行して調べた結果、1.5.0_08でした。
JavaÌo[WðvOÅmF·é(Java}X^[)
C++
プリプロセッサマクロで調べました。
#include <cstdio> #define strx(x) #x #define str(x) strx(x) void printVer() { printf("_MSC_VER=%s\n", str(_MSC_VER)); printf("GNUC: %s,%s,%s\n", str(__GNUC__), str(__GNUC_MINOR__), str(__GNUC_PATCHLEVEL__)); }
GNUCの4.0.2でした。
Microsoft Visual C++ - Wikipedia
Common Predefined Macros - The C Preprocessor
C#
バージョンを調べるAPIは弾かれます。
public void checkVersion() { new System.Collections.Generic.Queue<int>(); // 2.0 original System.Windows.Application app; // 3.0 original new System.Collections.Generic.HashSet<int>(); // 3.5 original new StringBuilder("This is a string.").Clear(); // 4.0 original }
上記をコンパイルして調べた結果、2.0でした。
@IT:.NET TIPS ビルド時および実行時のCLRバージョンを取得するには? - C# VB.NET
.NET Framework Version 2.0 の新機能
.NET Framework Version 3.0 の新機能