
Brian Braatz wrote:
(My own post got me thinking some more). I am new to boost, and do not fully have my head around all that exists. But I am asking a general question here, has anyone tried running boost under "Managed C++", I assume there is a lot of RAII type of usage in boost that I assume would break. Or am I misunderstanding something?
Thanks to anyone who can clarify.
This is a bit off topic but since you asked: Boost can run as unmanaged code under VC++ 7 and 7.1 but can not be called by managed C++ code. Theoretically managed C++ and unmanaged C++ can coexist in the same .NET assembly ( shared library ) in what is called "mixed mode", so that a C++ programmer could use the C++ standard library and Boost among other things in a .NET assembly, but there is a hideous bug in both VC++ 7 and VC++ 7.1 in which mixed mode assemblies created in C++ can hang up any process, and there is NO fix for this bug. MS has known about this from the beta stage of the Visual Studio .NET 2003 product, but has chosen not to fix it for the life cycle of the .NET products, a period which now stretches from January 2002 until the present. This effectually destroys the ability of any C++ programmer attempting to write .NET assemblies using the C++ standard library, and Boost, since the inception of .NET. An amazing story which has gotten no press at all. Lest you think I am making this up, see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechar... . What an amazing coincidence that this bug means that C++ programmers currently can only safely write reusable libraries for .NET if they give up using the C++ standard library and all C++ template programming. Microsoft says that this bug will be fixed for the next version of .NET to be tentatively released sometime in 2005. Managed C++ is different enough from standard C++, that Boost code can not currently be written in managed C++. There is currently no support for C++ templates in managed C++ code. The next version of managed C++, circa 2005, has promised support for C++ templates.