跳转至

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{};