私は最近、gcc 4.8 での正規表現サポートが不完全であり、gcc 4.9 で実際に実装されていることを知りました ( Is gcc 4.8 or older buggy about regular expressions?を参照してください)。
したがって、C++ プログラムで正規表現を使用したいので、この手順に従って gcc を 4.9 に更新しました ( https://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-4- 9-on-ubuntu-14-04 )。
今、プログラムをコンパイルしようとすると#include <regex>
、コンパイラ フラグを指定する必要があると表示されますが-std=c++11
、これを実行しましたが、以前にはなかった新しいコンパイルの問題に直面しています ( ‘constexpr’ needed for in-class initialization of static data member
)。
それを考えると、今のところ gcc 4.8 に固執し、コンパイルで gnu++11 フラグを指定しないのが最善だと思います。正方形 1 に戻ります。
では、gcc 4.9 に切り替えたり、c++11 でコンパイラにフラグを立てたりしたくない場合、c++ で正規表現を使用できますか? 別の方法はありますか?
ありがとう!
PS: 実際には、gcc のバージョンではなく、コンパイルの問題を引き起こすのは c++11 フラグですよね?