为什么我们需要在C ++ 20的map emplace中使用piecewise_construct?

问题描述 投票:0回答:1

这是关于std :: map emplace函数潜在的重载的理论问题,该函数检测是否已传递2个元组,这不是C ++ 20中是否存在此功能的问题。

根据我在先前的question映射位置中看到的,是std :: pair问题的“受害者”。

因此,我想知道为什么只有当我们将2个元组传递给emplace时,地图Emplace的概念/ SFINAE重载才有效(并且键/值可以从相应的元组构造)。

我想到的原因:

  • 以std :: tuple作为构造函数参数的weirdo类(可能还会将具有元组类型的ctor扩展为普通参数)
  • 没人认为值得花时间通过解决一个特定的问题来节省一些打字时间

这是关于std :: map emplace函数潜在的重载的理论问题,该函数检测是否已传递2个元组,这不是C ++ 20中是否存在此功能的问题。从我...

c++ sfinae c++20 c++-concepts
1个回答
0
投票

以std :: tuple作为构造函数参数的weirdo类

© www.soinside.com 2019 - 2024. All rights reserved.