I get an error just including regex.hpp in a program that used to work on
earlier VC versions.
1>c:\boost\include\boost-1_49\boost\regex\v4\regex_raw_buffer.hpp(184) :
error C2665: 'operator new' : none of the 6 overloads could convert all the
argument types
1> c:\program files
(x86)\microsoft visual studio 9.0\vc\include\new(57): could be 'void *operator
new(size_t,void *) throw()'
1> c:\program files
(x86)\microsoft visual studio 9.0\vc\include\new(86):
or 'void *operator new(size_t,const
std::nothrow_t &) throw()'
1> while trying to match the
argument list '(const char [64], long)'
1>c:\boost\include\boost-1_49\boost\regex\v4\perl_matcher_non_recursive.hpp(110)
: error C2059: syntax error : '*'
inline raw_storage::raw_storage(size_type n)
{
start = end = static_cast<pointer>(::operator
new(n)); <--- offending line for first error
BOOST_REGEX_NOEH_ASSERT(start)
last = start + n;
}
struct save_state_init
{
saved_state** stack;
save_state_init(saved_state** base, saved_state** end)
: stack(base)
{
*base =
static_cast<saved_state*>(get_mem_block());
*end =
reinterpret_cast<saved_state*>(reinterpret_cast<char*>(*base)+BOOST_REGEX_BLOCKSIZE);
--(*end);
(void) new (*end)saved_state(0);
<---- offending line for second error
...........
I looked to see if this was a known failure but apparently missed it if it
was already covered. It is probably not a Boost problem. The earlier versions
were compiled on 32 bit systems and this is a 64 bit system (Win7). I assume I
have probably missed some configuration item to make this work. I am fairly
certain I did compile this before under VC9 on a 32 bit system (Vista). (Boost
was built from source on this system and this compiler.)
Any pointers for resolution would be appreciated.
Larry