Re: basic_string constructor allocator
"John Keenan" <john.removeme.keenan@optimapowerware.com> wrote in
message news:yjODj.5322$Rq1.3590@nlpi068.nbdc.sbc.com
"Igor Tandetnik" <itandetnik@mvps.org> wrote
Your impression was incorrect.
Well I will try to work out an example. But the symtoms remain...
x[ key() ] generates an unhandled invalid pointer exception on
destruction of the key within x.
That would be "the program crashes at some point" symptom.
x[ key().c_str() ] executes as expected.
You just got lucky. Your program will crash at some other point.
It is a bad idea to use C++ classes in a DLL's public interface. It is
an even worse idea to do it in a way that requires transfer of ownership
of resources (such as allocating memory in one module and freeing it in
another). This can only work if the two modules are compiled together
using the same compiler and the same settings (and the same CRT DLL) -
at which point they are so tightly coupled that you can just as well
dump all source code together and build a single module.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925