std::is_placeholder

来自cppreference.com
< cpp‎ | utility‎ | functional

 
 
 
函数对象
函数包装
(C++11)
(C++11)
(C++17)
绑定
(C++11)
is_placeholder
(C++11)
引用包装
(C++11)
(C++11)
运算符包装
取反器
(过时)
(过时)

(过时)
查找器
旧绑定器与适配器
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)

(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
 
定义于头文件 <functional>
template< class T >
struct is_placeholder;
(C++11 起)
T是一个标准的占位符的类型(_1,_2,_3,...),那么这个模板std::integral_constant<int,1>std::integral_constant<int,2>std::integral_constant<int,3>,分别是来自。 T是不是一个标准的占位符类型,此模板来自std::integral_constant<int,0>.
原文:
If T is the type of a standard placeholder (_1, _2, _3, ...), then this template is derived from std::integral_constant<int,1>, std::integral_constant<int,2>, std::integral_constant<int,3>, respectively. If T is not a standard placeholder type, this template is derived from std::integral_constant<int,0>.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
模板可以专门用于任何用户定义的类型,如果它是一个未绑定的参数占位符,应被视为由std::bind.
原文:
The template may be specialized for any user-defined type which should be treated by std::bind as if it was a placeholder for unbound arguments.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

继承自 std::integral_constant

成员常量

value
[静态]
placeholder value or 0 for non-placeholder types
(公开静态成员常量)

成员函数

operator int
转换对象为 int ,返回 value
(公开成员函数)
operator()
(C++14)
返回 value
(公开成员函数)

成员类型

类型 定义
value_type int
type std::integral_constant<int, value>

[编辑] 示例

#include <iostream>
#include <type_traits>
#include <functional>
 
struct My_2 {
} my_2;
 
namespace std {
    template<>
    struct is_placeholder<My_2> : public integral_constant<int, 2> {};
}
 
int f(int n1, int n2)
{
    return n1+n2;
}
 
int main()
{
    std::cout << "Standard placeholder _5 is for the argument number "
              << std::is_placeholder<decltype(std::placeholders::_5)>::value
              << '\n';
 
    auto b = std::bind(f, my_2, 2);
    std::cout << "Adding 2 to 11 selected with a custom placeholder gives "
              << b(10, 11)
              << '\n';
}

输出:

Standard placeholder _5 is for the argument number 5
Adding 2 to 11 selected with a custom placeholder gives 13

[编辑] 另请参阅

(C++11)
绑定一或多个参数到函数对象
(函数模板) [编辑]
std::bind表达式中用于非绑定的参数的占位符
(常量) [编辑]