BUG: C1001 When Using Certain float Values as Template Arguments of Class Template (263601)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
  • Microsoft Visual C++, 32-bit Professional Edition 6.0
  • Microsoft Visual C++, 32-bit Learning Edition 6.0

This article was previously published under Q263601

SYMPTOMS

If a float (or double) constant is a template argument in a template class and you instantiate the class by certain values of float, the compiler may generate the following error:
fatal error C1001: INTERNAL COMPILER ERROR (compiler file '.\outdname.c', line 572) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

Steps to Reproduce Behavior

The following sample code demonstrates the bug:
// Test.cpp
// Compiler option needed:none
// Both of these examples produce the error.
 
template<float f> class C { };
C<3.402823466E+38> minimum;
 
template<float f, float g> class D { };
D<0., 2147000000.> range;
				

Modification Type:MinorLast Reviewed:7/5/2005
Keywords:kbBug kbCompiler kbCPPonly kbtemplate KB263601