我想使用Boost检查给定的字符串是否是有效的UUID。
根据Boost网站上的文档,我得出了以下结论:
根据Boost网站上的文档,我得出了以下结论:
void validate_uuid(const std::string& value)
{
try
{
boost::uuids::string_generator stringGenerator;
(void)stringGenerator(value);
}
catch (const std::exception& ex)
{
// ...
}
}
然而,这并不总是有效的。
如果我使用的字符串长度不足以生成一个有效的UUID,那么就会如预期一样抛出异常。但是,如果我使用一个无效的UUID(例如00000000-0000-0000-0000-00000000000K
),则不会抛出异常。
请问有人可以澄清为什么会发生这种情况吗?
此外,我看到了使用boost::lexical_cast将字符串作为UUID读取的方法,如此处所述。 我想知道是否应该采用这种方法。 任何建议都将不胜感激。
regex
基础。 - Mark Ransom