Vincent Finn wrote:
Hi,
Hi Vincent,
I am using the function classes in VC6 and have hit a problem
The problem is that the compiler can't allocate enough space to build (The error mesages are at the bottom) Nomally you use the /ZmXXX compiler flag to make this bigger but that doesn't work in this case
Has anyone hit this before?
Yes, this is a know issue. Basically, the error is triggered by a large amount of [class] template specializations within a single translation unit. Unfortunatety, while trying to support certain functionalily on broken compilers, some boost headers contribute a fair amount of those on their own (please see below). In combination with your own heavy templated code, this can lead to the errors you've seen.
Is there a simple workaround?
The simplest one is to split a single translation unit into several ones, if it's possible. If it's not, or of this still doesn't help, and you are sure that you are _not_ using the type_traits type transformation templates (http://www.boost.org/libs/type_traits/index.htm#transformations), then you can define (a project wise) BOOST_TT_NO_BROKEN_COMPILER_SPEC macro and see how this one works out. Note that for the latter you'll need the latest CVS version of type_traits library, and that some of the other boost libraries might rely on things like 'remove_pointer' working properly, so depending on that this might or might not be a viable option. HTH, Aleksey