On 7/27/2015 1:44 PM, Samuel Neves wrote:
On 27-07-2015 12:56, Edward Diener wrote:
On 7/27/2015 6:28 AM, John Maddock wrote:
That builds in release mode, but not debug, weird!
What are the different options between release and debug mode ?
To answer my own question compiling with /MDd turns on debug ( and the define of _DEBUG ) whereas just /MD is for release.
I've tracked the issue down to the `xlocale` header, where the `_Crt_new_delete` class definition depends on the `_DEBUG` flag. A minimal example for reproduction, based on it, follows:
struct B { #ifdef _DEBUG void operator delete(void *) {} #endif };
struct S : B { virtual ~S() {} };
namespace boost { namespace mpl { struct size_t {}; } }
int main() { return 0; }
using namespace boost::mpl;
I have verified that you are correct. Can you post what you have found on the bug report page at https://connect.microsoft.com/VisualStudio/feedback/details/1593471/compile-... ? It might help although STL has already said that a Microsoft employee is working on a fix, which implies that they probably already know what is causing the problem.