自前でGCC4.9を入れて、そちらのヘッダファイルを使う方法もありますが、root権限で勝手に色々できる環境なら、cstdio
に小細工をしてしまってもコンパイル通って実行できました・・・
--- /usr/include/c++/4.8/cstdio.bak 2014-04-05 03:51:34.000000000 -0700
+++ /usr/include/c++/4.8/cstdio 2014-04-05 03:51:34.000000000 -0700
@@ -117,7 +117,9 @@
using ::fwrite;
using ::getc;
using ::getchar;
+#ifndef __clang__
using ::gets;
+#endif
using ::perror;
using ::printf;
using ::putc;
そのほかコンパイル通すために直した些細な違い、、
* Clangだとconstexpr
な値を得るときにreinterpret_cast
が使えなかった。
* Clangだと、enable_if<NUM>::type
がだめで、enable_if<NUM != 0>::type
としないといけなかった。
※GCC4.8以前のlibc++ヘッダを使うと、勝手にgets
を参照しようとする問題の回避策です。頑張ってgets()
を使う方法ではありませんのであしからず。