DOCUMENT:Q143081 03-AUG-2001 [visualc] TITLE :PRB: Ambiguous Msg If Function Template Return Type Omitted PRODUCT :Microsoft C Compiler PROD/VER::4.0 OPER/SYS: KEYWORDS:kbCompiler kbCPPonly kbVC ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft C/C++ Compiler (CL.EXE), included with: - *EDITOR Please do not choose this product*Microsoft Visual C++ 32-bit Edition* use 241, 265, 225, version 4.0 ------------------------------------------------------------------------------- SYMPTOMS ======== Given a function template, if the return type is omitted, the error that results is a syntax error on the semicolon preceding the closing brace of the function. minmax.cpp(4) : error C2059: syntax error : ';' RESOLUTION ========== Specify a return type for the function template. STATUS ====== This behavior is by design. MORE INFORMATION ================ In C++, it is an error for a function to be declared without a return type. This is in compliance with the proposed ANSI C++ specification (ref. ARM, section 7.1.1). Sample Code ----------- /* Compile options needed: /c */ // This Min is in error (no return type is specified) template Min (X &t1, X &t2) { if (t1 X& Min (X &t1, X &t2) { if (t1