【发布时间】:2020-05-12 17:04:51
【问题描述】:
这是关于 std::map emplace 函数的潜在重载的理论问题,该函数检测到它已被传递 2 个元组,而不是 C++20 中是否存在此功能的问题。
根据我在之前的question 中看到的情况,map emplace 是 std::pair 问题的“受害者”。
这让我想知道为什么只有当我们将 2 个元组传递给 emplace(并且键/值可以从各自的元组构造)时,map emplace 没有概念/SFINAE 重载才有效。
我想到的原因:
- 将 std::tuple 作为构造函数的参数的怪异类(也可能具有将该元组类型扩展为普通参数的 ctor)
- 没有人认为值得花时间通过解决一个特定问题来节省一点打字时间
【问题讨论】:
标签: c++ sfinae c++20 c++-concepts