2013-08-19 2 views
1

У меня есть такая codee:станд :: make_pair C++ 11 + VS2013 = компилятор ошибки

struct Foo { 
    unsigned attr : 7; 

    std::pair<char *, unsigned> f() { 
     char *ch = nullptr; 
     return std::make_pair(ch, static_cast<unsigned>(attr)); 
    } 
}; 

MSVS2013 дать мне что-то вроде этой ошибки:

can not convert 'unsigned int' to 'unsigned int&'

Хотя GCC 4.8 и лязг 3,3 компиляции такой код без ошибок.

Является ли это ошибкой компилятора MSVS? Если да, то где я должен сообщить об этом?

+1

Использует ли 'std :: make_pair ' help? –

+0

Нет, только std :: pair <> вместо std :: make_pair помогает – fghj

ответ

2

Скомпилирует и работает отлично в VS2010. Должна быть ошибка. Сообщите об этом в Microsoft Connect: https://connect.microsoft.com/VisualStudio

+0

Спасибо, отправьте отчет об ошибке здесь: https://connect.microsoft.com/VisualStudio/feedback/details/797715/std-make-pair-c -11-против-2013 – fghj