Re: Explicitly specializing std::min() on VC++ 2005 Express Edition



"Ben Voigt" <rbv@xxxxxxxxxxxxx> schrieb im Newsbeitrag
news:Om29DogoHHA.1476@xxxxxxxxxxxxxxxxxxxxxxx

You need an account with Microsoft in order to report a problem to them,
which in turn requires you to agree to about a dozen pages of legal
English basically saying that they may do whatever they want while they
may sue you to the max if anything goes wrong. I do not have the time to
read all this stuff their lawyers came up with, and I'm not going to sign
anything I haven't read, especially when it comes from Microsoft. Other
companies are happy to receive feedback, Microsoft isn't. If they don't
want my report, then they won't get it.

There's less legalese associated with the bug report than there is with
using the compiler, any version, even express edition or the sdk bundle.
There's also at least 3 VC++ MVPs involved with this thread. I think you
have an excellent chance of getting feedback into the system.

Here are the things requested by the feedback form. If you will complete
the form, I will submit the bug report.

Thank you very much for your help, I appreciate it. See below for my
completion of the form and let me know if you need to know more.

Visual Studio and .NET Framework
Create Feedback
Reminder: Do not attach any personal information that you want to keep
private. Feedback submissions are reviewed by Microsoft and, in some
cases, by other community members.
* Indicates a required field.
Feedback Type
Bug
Feedback Form
Bug Submission Form
Title
* (1 line required here)

Arrays decay into pointers in conditional operator

Access Restrictions
(*) Public - all users can view, add comments, and vote on feedback
(preferred)
( ) Private - access to this feedback is restricted to me, Microsoft, and
others to whom Microsoft delegates

Public

( ) Blocking Issue

Description (5000 characters max)
*
You must enter a description.

If T is a template parameter which is a reference to an array, T decays
unnecessarily into a pointer in the conditional operator.

Product Language * (pick one)
English Chinese Simplified Chinese Traditional French German Italian
Japanese Korean Spanish

German

Version * (pick one)
Visual Studio 2005 (All Products and Editions) Service Pack 1 w/ Windows
Vista Update Visual Studio 2005 (All Products and Editions) Service Pack 1
Visual Studio 2005 (All Products and Editions) Visual C#, C++, J#, or
Visual Basic Express Service Pack 1 w/ Windows Vista Update Visual C#,
C++, J#, or Visual Basic Express Service Pack 1 Visual C#, C++, J#, or
Visual Basic Express .NET Framework 2.0 Service Pack 1 .NET Framework 2.0
.NET Framework 3.0 (includes Windows Presentation, Communication and
Workflow Foundation) SQL Express 2005 Service Pack 1 SQL Express 2005
Visual Studio 2005 Team Edition for Database Professionals CTP Visual
Studio Code Name "Orcas" (Beta 1) Visual Studio Code Name "Orcas" (March
2007 CTP) Visual FoxPro 9.0 Visual FoxPro 9.0 SP1 Visual FoxPro 9.0 SP2
and Sedna CTP Visual J# 2.0-SE Redistributable Package Second Edition
Other

Visual C++ 2005 Express Edition with Service Pack 1

Operating System * (pick one)
Windows Vista Windows XP Professional Windows XP Embedded Windows XP Home
Edition Windows XP Media Center Edition Windows XP Tablet PC Edition
Windows 2000 Advanced Server Windows 2000 Datacenter Server Windows 2000
Professional Windows 2000 Server Windows CE .NET Windows Mobile Windows
Server 2003

Windows XP Professional

Operating System Language * (pick one)
English Afrikaans Albanian Any Arabic Arabic (Algeria) Arabic (Bahrain)
Arabic (Egypt) Arabic (Iraq) Arabic (Jordan) Arabic (Kuwait) Arabic
(Lebanon) Arabic (Libya) Arabic (Morocco) Arabic (Oman) Arabic (Qatar)
Arabic (Saudi Arabia) Arabic (Syria) Arabic (Tunisia) Arabic (U.A.E.)
Arabic (Yemen) Basque Bulgarian Byelorussian Catalan Chinese Chinese (Hong
Kong) Chinese (PRC) Chinese (Simplified) Chinese (Singapore) Chinese
(Taiwan) Chinese (Traditional) Croatian Czech Danish Default Dutch Dutch
(Belgian) English (Australian) English (Canadian) English (Ireland)
English (New Zealand) English (UK) English (US) Estonian Farsi Finnish
French French (Belgian) French (Canadian) French (Luxembourg) French
(Swiss) Gaelic German German (Austrian) German (Liechtenstein) German
(Luxembourg) German (Swiss) Greek Hebrew Hebrew (Israel) Hindi Hungarian
Icelandic Indonesian Italian Italian (Swiss) Japanese Japanese (NEC)
Kampuchean Kazakh Korean Laotian Latvian Lithuanian Macedonian Maori
Norwegian Norwegian (Bokmal) Norwegian (Nynorsk) Polish Portuguese
Portuguese (Brazilian) Rhaeto Roman Romanian Russian Serbo Croatian Serbo
Croatian (Cyrillic) Serbo Croatian (Latin) Slovak Slovenian Sorbian
Spanish Spanish (Mexican) Spanish (Modern Sort) Spanish (Traditional Sort)
Sutu Swedish System Default Thai Tsonga Tswana Turkish Ukrainian Urdu
Venda Vietnamese Welsh Xhosa Zulu
Which language? * (pick one)

German

VB C# C++ J# HTML/CSS FoxPro Other
Where did you encounter the problem? * (pick one)
.NET Framework Library C++ Library Compiler Documentation/Help IDE
(Visual Studio UI) Team Tools and Debugger Data Tools Mobile and Embedded
Other

Compiler

Steps to Reproduce *
(multi-line feedback here)

Compile the following code:

#include <cstring>
#include <iostream>

template <class T> struct minimum_impl
{
static const T& minimum(
const T& a, const T& b )
{
return a < b ? a : b;
}
};

template <std::size_t N> struct minimum_impl<char[N]>
{
static const char (& minimum( const char (&a)[N],
const char (&b)[N] ) )[N]
{
// Error C2440 here.
return std::strcmp( a, b ) < 0 ? a : b;
}
};

template <class T> inline
const T& minimum( const T& a, const T& b )
{
return minimum_impl<T>::minimum( a, b );
}

int main()
{
char a[] = "a";
char b[] = "b";

std::cout << minimum( a, b ) << std::endl;

return 0;
}

Actual Results *
(multi-line feedback here)

Gives a C2440 error.

Expected Results *
(multi-line feedback here)

Should compile without an error.

Please post a link to the bug report when you have submitted it, thank you!
:-)

--
Best regards,

Matthias Hofmann

Anvil-Soft, CEO

-----------------------------------

www.anvil-soft.com

Anvil-Soft
Wiesentalstr. 5
90419 Nuernberg
Germany

Telephone:
+49 (0)911-93 89 29 2

Facsimile:
+49 (0)911-93 89 29 3


.



Relevant Pages

  • Re: Explicitly specializing std::min() on VC++ 2005 Express Edition
    ... asking to reopen the report if the problem persists: ... Open a new case on connect, referencing the original feedback and adding ... You need an account with Microsoft in order to report a problem to them, ... (includes Windows Presentation, Communication and Workflow Foundation) ...
    (microsoft.public.vc.language)
  • Re: OE Status (bottom right) - also no new email icon
    ... Please deliver feedback to the newsgroup, so that others can be helped. ... Didn't change anything in OE, as a matter of fact, I checked the version of OE on the old laptop where it behaves normally and it's the same version as the one on this laptop that is misbehaving - the updates didn't touch OE it seems. ... When did you last visit Windows Update? ...
    (microsoft.public.windows.inetexplorer.ie6_outlookexpress)
  • Re: gforth dos/win
    ... The way to create Gforth from CVS on Windows is the same way as on Unix - ... I've never seen a program under windoze do that. ... does Linux even let you use the modem ... feedback comes from Linux users. ...
    (comp.lang.forth)
  • Re: XON/XOFF communication problem
    ... The difference between Linux and Windows may be caused by Windows not ... The feedback needs to be fast to ... cope with the receiver buffer getting full before the extra slack in the ... Tauno Voipio ...
    (comp.os.linux.misc)
  • Symantec false positive cripples thousands of Chinese PCs
    ... Symantec false positive cripples thousands of Chinese PCs ... Virus signature update mistakes critical Windows files for malware ... Gregg Keizer Today?s Top Stories or Other Security Stories ...
    (soc.culture.malaysia)