(googletestについて知りたい方はこちらのエントリでまとめています)
このあいだ書いたように、googletest 1.4.0では、Cygwin上で-ansi
オプションをつけてコンパイルするとエラーになります。
よくわからないので中の人に訊いてみました。というか、Google グループで質問したら中の人が答えてくださいました。
Google Test is designed to conform to the POSIX standard on UNIX-like systems. It will likely not work when pure ANSI conformance is expected.
I suggest compiling it without the -ansi option.
Google Testは、UNIXのようなシステムの上のPOSIX規格に従うように設計されています。 純粋なANSI順応が予想されるとき、それはおそらく働かないでしょう。
私は、-ansiオプションなしでそれをコンパイルすることを提案します
(by エキサイト翻訳)
ということで。POSIXの仕様を前提にしているからANSIの仕様上ではちゃんと動かないかもしれないとのこと。もうこれは適用範囲がそうだと納得するしかないでしょう。
一応、コードを調べてみて、エラーになるコードはライブラリを構築するときにしか使われていないので、インストール後にエラーになるgtest/internal/gtest-port.hの中の当該コードを削除するなりコメントアウトするなりすると-ansi
オプションを付けてもコンパイルできることは確認しました。
もっとも、1.4.0ではそれでコンパイルできるようになるというだけで、今後もそれで動作するかはわからないわけで、オプションつけないと割り切った方がよさそうです。
一応、質疑応答の様子。わたしの怪しい英文は気にしないでください(汗)。