I didn't see this in the reported bugs so I'm not sure whether its a known problem or not. C:\boost\>timer Enter expression (or "quit" to exit): ([[:digit:]]{1,}|[[:space:]]{1,}){1,}[[:alpha:]]{1,} Enter string to search (or "quit" to exit): 22222222222222222222 abnormal program termination ---- Built with MS VC++ 6.0 on a x86 (Pentium M, Family 6, Model 9 running WinXP SP2. C:\> cl Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. Boost.regexp and the examples were built from boost_1_32_0.zip using vc6.mak.
I didn't see this in the reported bugs so I'm not sure whether its a known problem or not.
C:\boost\>timer Enter expression (or "quit" to exit): ([[:digit:]]{1,}|[[:space:]]{1,}){1,}[[:alpha:]]{1,} Enter string to search (or "quit" to exit): 22222222222222222222
abnormal program termination
Um yes, the program should catch the exception and report the cause: the regex matching functions can throw if the expression starts consuming too many cycles, in this case you've got the classic: ((something that matches)+)+(something that doesn't match) expression, that will cause any Perl style regex-engine to fall over. Boost.Regex does so by throwing an exception, most others just go on thrashing away indefinitely. Decide for yourself which is better! John.
participants (2)
-
Jeff
-
John Maddock