動作確認
C++ Builder XE4
http://qiita.com/7of9/items/8c0d1362ed2950effa57
で試した正規表現の処理を実環境で使おうとしたら以下のようなエラーが出た。
`toupper`が....System.RegularExpressionsAPIから参照されています
プロジェクトオプション > パッケージ > 実行時パッケージ > 実行時パッケージを使ってリンク をfalseにしている時に発生するようだ。
回避策
回避策はいくつか検索で見つかったが、IDE環境自体を変更する必要がない方法としては以下があるようだ。
Unit1.cppに以下を追加する。実際にやってみたらエラーがなくなった。
# ifdef _WIN32 && !defined(_WIN64)
# pragma alias "toupper" = "_toupper"
# pragma alias "tolower" = "_tolower"
# pragma alias "isupper" = "_isupper"
# pragma alias "isalnum" = "_isalnum"
# pragma alias "isalpha" = "_isalpha"
# pragma alias "iscntrl" = "_iscntrl"
# pragma alias "isdigit" = "_isdigit"
# pragma alias "isgraph" = "_isgraph"
# pragma alias "isleadbyte" = "_isleadbyte"
# pragma alias "islower" = "_islower"
# pragma alias "isprint" = "_isprint"
# pragma alias "ispunct" = "_ispunct"
# pragma alias "isspace" = "_isspace"
# pragma alias "isxdigit" = "_isxdigit"
# pragma alias "strchr" = "_strchr"
# pragma alias "strncmp" = "_strncmp"
# pragma alias "memcmp" = "_memcmp"
# pragma alias "memmove" = "_memmove"
# endif
正規表現を多量に使うことになった場合にはIDE環境自体を変更するほうがいいかも含めて検討することになる。