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

时间:2013-08-19 06:13:52

标签: c++ visual-studio-2013

我有这样的代码:

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'转换为'unsigned int&amp;'

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

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

1 个答案:

答案 0 :(得分:2)

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