std::make_pair C++11+VS2013=编译器错误

std::make_pair C++11 + VS2013=compiler error

本文关键字:编译器 错误 C++11+VS2013 pair make std      更新时间:2023-10-16

我有这样的代码:

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

MSVS2013给我这样的错误:

无法将"unsigned int"转换为"unsignedint&"

而gcc 4.8和clang 3.3编译这样的代码没有错误。

这是MSVS编译器错误吗?如果是,我应该在哪里报告?

编译并在VS2010中正常工作。一定是个bug。向Microsoft Connect报告:https://connect.microsoft.com/VisualStudio