Article: Q165803
Product(s): Microsoft C Compiler
Version(s): winnt:5.0
Operating System(s):
Keyword(s): kbVC500bug kbVC600fix kbVS600sp2kbbuglist
Last Modified: 04-MAY-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- The C/C++ Compiler (CL.EXE), used with:
- Microsoft Visual C++, 32-bit Enterprise Edition, version 5.0
- Microsoft Visual C++, 32-bit Professional Edition, version 5.0
- Microsoft Visual Studio 6.0, SP2
-------------------------------------------------------------------------------
SYMPTOMS
========
The sample code in the MORE INFORMATION section causes the compiler error
C2783:
'declaration' : could not deduce template argument for 'identifier'
RESOLUTION
==========
The workaround is to avoid argument deduction by specifying the
template-parameter-list when calling the function template.
STATUS
======
Microsoft has confirmed this to be a problem in the Microsoft products that are
listed at the beginning of this article.
This problem was corrected in Microsoft Visual C++ version 6.0.
MORE INFORMATION
================
The following sample code demonstrates the problem and the workaround:
SAMPLE
------
/* Compile options needed: none
*/
template <int I>
struct C
{
int a[I] ;
};
template <int I>
int F(C<I> a)
{
return I ;
}
int main ()
{
int i;
C<4> CObj ;
i = F(CObj);
// Workaround: Comment the line above.
// Uncomment the following line
// i = F<4>(CObj);
return 0 ;
}
Additional query words:
======================================================================
Keywords : kbVC500bug kbVC600fix kbVS600sp2 kbbuglist
Technology : kbVCsearch kbAudDeveloper kbCVCComp
Version : winnt:5.0
Issue type : kbbug
Solution Type : kbfix
=============================================================================