1
私はこの状態でコンパイルするが、 "Call to pair is ambiguous"を与えるが、Clion IDEでのみ問題なくコンパイルでき、警告が消えてしまうコンパイラのエラーを引き起こしても、ランダムなものを追加してください。Clionによって "Call to pair ambiguous"とコードがコンパイルされる
std::pair<Status, std::set<std::string>> Config::foo(const std::string &sec, const std::string &key) const {
return std::pair<Status, std::set<std::string>>(
hasSection(sec) ? (hasKey(sec, key) ? Status::Success
: Status::MissingKey)
: Status::MissingSec ,
hasKey(sec, key) ? config_map.find(sec)->second.find(key)->second
: std::set<std::string>()
);
}
私はそれをどのように修正するのか、実際問題が何であるかについてはわかりません。
問題が実際に何であるかを明確にしてください – Welton122
Zergのコードは正しいです、 "Call to pair is ambiguous"は本質的にClionのバグです。 std :: pairには初期化コンストラクタ_がありますので、 "std :: pair example(" example "、2);' "です。 std :: make_pairではなく、_r-value_と_move constructor_(および暗黙の変換)を使用してstd :: pairオブジェクトを構築します。 –