std::ignore
- 头文件:
tuple
- 功能:使值均可赋给而无效果的未指定类型的对象。目的是令 std:: tie 在解包 std:: tuple 时作为不使用的参数的占位符使用。
- 示例
#include <iostream>
#include <string>
#include <set>
#include <tuple>
int main()
{
std::set<std::string> set_of_str;
bool inserted = false;
std::tie(std::ignore, inserted) = set_of_str.insert("Test");
if (inserted) {
std::cout << "Value was inserted successfully\n";
}
}
- 源码分析:std:: ignore 是一个_Ignore 类对象,
_Ignore
以模板形式重载了赋值运算符,仅仅用来接收任意类型数据,但不使用其数据。
// STRUCT _Ignore
struct _Ignore { // struct that ignores assignments
template <class _Ty>
constexpr const _Ignore& operator=(const _Ty&) const noexcept /* strengthened */ {
// do nothing
return *this;
}
};
_INLINE_VAR constexpr _Ignore ignore{};