ardupilotというオープンソースのソースを改変しながら開発を進めています。
最近g++でビルドした際に標準ライブラリ内でエラーが発生するようになりました。エラー内容は以下の通りです(環境はubuntudです)。

In file included from /usr/include/c++/5/bits/basic_ios.h:37:0,
             from /usr/include/c++/5/ios:44,
             from /usr/include/c++/5/ostream:38,
             from /usr/include/c++/5/iostream:39,
             from ../../libraries/AP_IRLock/AP_IRLock_SITL.cpp:30:
/usr/include/c++/5/bits/locale_facets.h:2601:44: error: macro "isdigit" passed 2 arguments, but takes just 1
 isdigit(_CharT __c, const locale& __loc)
                                        ^
compilation terminated due to -Wfatal-errors.

内容から察するにlocale_facets.hでしようされているisdigit関数の引数が2つ指定されているが、ctype.h内のisdigit関数の引数は1つしか要求していないということだと思います。
事実、/usr/include/c++/5/bits/locale_facets.h内のisidigitと/usr/include/ctype.h内のisdigitが異なっていることは確認できています。
g++のバージョンを4.7に変更したりしましたが、ダメでした。
ちなみに今のg++のバージョンは5.4.1です。
g++,gccの際インストール等も行いましたが、結果はダメでした。

どなたか助けてください。