I’ve been collecting these for a little while. Since we are now well under way in migrating to VS2005, now is a good time to post them.
.\Components/CommComponents/FDMSInterleaveTcpipComm/Test_FDMSInterleaveTcpipComm.h(106) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1794) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information
was caused by:
template<typename VersionPolicy> class SVDotPacketProductionPolicy;
class SVDotPacketProductionPolicy<SV24VersionPolicy>;
friend class SVDotPacketProductionPolicy<SV24VersionPolicy>;
class SVDotPacketProductionPolicy<SV40VersionPolicy>;
friend class SVDotPacketProductionPolicy<SV40VersionPolicy>;
Include\boost/bind/arg.hpp(25) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1794) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information
This one started after I added
#include <boost/bind.hpp>
to a file and a simple, every-day use of boost::bind()
. Moving the
#include
directive up before a number of other standard includes resolved
the issue.
C:\projects\DASV2>scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... cl /FoComponents\AuthComponents\Credit\CCMps\Release\Tests.obj /c Components\AuthComponents\Credit\CCMps\Release\Tests.cpp /nologo /TP /nologo /MT /W2 /GX /GR /O2 /Zi /Zm200 /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /FD /D "_WIN32_WINNT=0x0400" /D "_WIN32_DCOM" /IWindowsSDK\Include /IInclude /Icryptlib /IXML\Xerces\src /I. /IComponents\AuthComponents\Credit\CCMps Tests.cpp Include\boost/function/function_template.hpp(514) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1794) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information scons: *** [Components\AuthComponents\Credit\CCMps\Release\Tests.obj] Error 2 scons: building terminated because of errors.
06/01/2009 – This one was the result of passing a pointer to a static member function to boost::function1<>
.
C:\projects\DASV2>scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... python.exe Utilities/CxxTest/cxxtestgen.py --runner=XmlPrinter --have-eh --have-std --check-memory -o CBase\ISOMsg\Debug\Tests.cpp CBase\ISOMsg\Test_Fields.h cl /FoCBase\ISOMsg\Debug\Tests.obj /c CBase\ISOMsg\Debug\Tests.cpp /nologo /TP /nologo /MTd /Od /W2 /GX /GR /Zi /Zm200 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /FD /D "_WIN32_WINNT=0x0400" /D "_WIN32_DCOM" /D "DEBUG" /D "_DEBUG" /IWindowsSDK\Include /IInclude /Icryptlib /IXML\Xerces\src /I. /ICBase\ISOMsg Tests.cpp .\CBase/ISOMsg/Test_Fields.h(157) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1794) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information scons: *** [CBase\ISOMsg\Debug\Tests.obj] Error 2 scons: building terminated because of errors.
06/18/2009 – This one is the result of attempting to use a template member of template class. Here’s the (abbreviated) code:
template<typename C, C v>
struct ThreeArgConstructor
{
template<class BaseT>
struct Type : public BaseT
{
Type(int length)
: BaseT(length, "TEST FIELD PACKAGER", v)
{}
};
};
template<
BaseT
, ConstructorT
>
class Foo
{
typedef typename ConstructorT::template Type<BaseT> TestPackager;
void run() {
TestPackager(10);
}
};
int main() {
Foo<Bar, ThreeArgConstructor<bool, false> >().run();
return 0;
}