Ошибка MSVC? -`std :: type_info :: name ()` Не удается, когда параметр шаблона, не являющегося типом, имеет тип `unsigneC++

Программы на C++. Форум разработчиков
Anonymous
Ошибка MSVC? -`std :: type_info :: name ()` Не удается, когда параметр шаблона, не являющегося типом, имеет тип `unsigne

Сообщение Anonymous »

Я давно думал, что странно, что MSVC использует __int64 в качестве имени для типа Long Long во всех своих диагностических сообщениях.

Код: Выделить всё

// MSVC outputs "__int64"
std::cout 
Это необычно, но я могу жить с ним. Помимо странного имени, тип ведет себя как 64-битный тип длиной длиной 
, должен вести себя. Это возникло, когда я попросил MSVC дать мне имя struct. Другие встроенные целочисленные типы. < /p>

Код: Выделить всё

// main.cpp
#include 
#include 
#include 

template
< typename Int
, Int Max = std::numeric_limits::max()
>
struct foo {
static Int max() {
return Max;
}
static std::string name() {
return typeid(foo).name();  // 

Подробнее здесь: [url]https://stackoverflow.com/questions/79655596/msvc-bug-stdtype-infoname-fails-when-non-type-template-parameter-has[/url]

Вернуться в «C++»