# std::ignore

< cpp‎ | utility‎ | tuple

定义于头文件 `<tuple>` |  |
const /*unspecified*/ ignore; |  | (C++11 起) (C++17 前)
inline constexpr /*unspecified*/ ignore; |  | (C++17 起)

任何值均可赋给而无效果的未指定类型的对象。目的是令 std::tie 在解包 std::tuple 时作为不使用的参数的占位符使用。

### 可能的实现

    namespace detail {
    struct ignore_t {
        template <typename T>
        constexpr // C++14 起要求
        void operator=(T&&) const noexcept {}
    };
    }
    inline constexpr detail::ignore_t ignore; // C++17 前仅 'const'

### 示例

解包 set.insert() 所返回的 pair ，但只保存布尔值。

    #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";
        }
    }

输出：

    Value was inserted successfully

### 参阅

tie | 创建左值引用的 `tuple`，或将 tuple 解包为独立对象 (函数模板)