std::ignore
来自cppreference.com
定义于头文件 <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
参阅
创建左值引用的 tuple ,或将 tuple 解包为独立对象 (函数模板) |