なぜ次のコードでstd::bad_cast
例外が生成されますか?便宜上basic_regexがchar32_tでbad_castをスローします
#include <iostream>
#include <regex>
#include <string>
int main()
{
std::basic_string<char32_t> reg = U"^\\w";
try
{
std::basic_regex<char32_t> tagRegex(reg);
}
catch(std::exception &e)
{
std::cout << e.what() << std::endl;
}
return 0;
}
Ideoneにこのサンプルは:https://ideone.com/Saea88
(プルーフ:https://ideone.com/OBlXed)も投げることなく、代わりchar32_t
ランのchar
又はwchar
を使用します。