とstd::piecewise_construct
一緒に使用する場合は少し混乱しstd::map
ます。例:
std::map<std::string, std::string> m;
// uses pair's piecewise constructor
m.emplace(std::piecewise_construct,
std::forward_as_tuple("c"),
std::forward_as_tuple(10, 'c'));
使用emplace()
時にこのタイプの構造を異なる方法で処理する方法をどのように知っているのかわかりませんpiecewise_construct
。それはすべきではありません:std::piecewise_construct(std::forward_as_tuple("c"), std::forward_as_tuple(10, 'c'))
?カンマだけでどのように機能するのでしょうか。オーバーロードされたコンマ演算子や、emplace
区分的引数、次に変数引数を処理するための特別なオーバーロードは表示されません(ここに示すように)。
std::map::emplace
emplace
型std::map<std::string, std::string>::value_type
(typedef to std::pair<const std::string, std::string>
)の(転送する)引数を使用してコンストラクターを直接呼び出します。
std::pair
コンストラクターがstd::piecewise_construct_t
(のタイプstd::piecewise_construct
)を取る
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加