【问题标题】:Why does std::is_copy_constructible not work as expected?为什么 std::is_copy_constructible 不能按预期工作?
【发布时间】:2013-09-24 03:47:00
【问题描述】:

我的编译器是 VC++ 2013 RC。

#include <type_traits>

struct A
{
    A() = default;
    A(const A&) = delete;
};

int main()
{
    auto b = std::is_copy_constructible<A>::value;
    // Now b is TRUE! Rather than false.
}

这是 VC++ 2013 RC 的 BIG BUG 吗?

更新:

ideone 给出了正确的结果。

【问题讨论】:

  • 无关注释...std::scoped_allocator_adaptor 的主要目的是控制用于存储在容器内的对象的分配器(而不仅仅是用于容器的数据结构)。这是 Bloomberg 基于他们的BSL 的提议,除了在 BSL 中 all 分配器是 scoped 的。查看可以使用测试分配器运行的可用示例,以了解该功能的用途。
  • EDIT 是否可以修复或进一步解释现有问题,如果您有新的不同问题,请询问一个不同的问题。 如何问题是否有std::scoped_allocator_adaptor的简洁示例与编辑后的为什么std::is_copy_constructible不能按预期工作有关?这不是编辑,而是一个完全不同的新问题
  • @David,因为我已经达到了一个月的问题限制。所以我不能问一个新的,而是编辑一个现有的。

标签: c++ visual-c++ c++11 typetraits


【解决方案1】:

这应该是 Visual C++ 2013 中的一个错误。根据their website=delete=default 将在 RTM 版本中实现,所以令人惊讶的是 RC 没有正确评估它。你可以查看他们的bug database,如果之前没有提到过,可以提交一个新的。

【讨论】:

  • 我在 connect.microsoft.com 上发现了一个错误
  • @xmllmx 希望能及时修复!
猜你喜欢
  • 2019-02-14
  • 1970-01-01
  • 2020-06-07
  • 2016-09-27
  • 2021-05-30
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多