Skip to content

Latest commit

 

History

History
55 lines (41 loc) · 1.68 KB

is_placeholder.md

File metadata and controls

55 lines (41 loc) · 1.68 KB

is_placeholder

  • functional[meta header]
  • std[meta namespace]
  • class template[meta id-type]
  • cpp11[meta cpp]
namespace std {
  template <class T>
  struct is_placeholder;

  template <class T>
  inline constexpr int is_placeholder_v = is_placeholder<T>::value; // C++17
}

概要

T がプレースホルダかどうかを判別する

要件

is_placeholder は、型 T がプレースホルダを示す(std::placeholders::_1, std::placeholders::_2, ...)ならば std::integral_constant<int, J> から派生(ただし、J は何番目のプレースホルダを示すかの値)し、そうでなければ std::integral_constant<int, 0> から派生する。

ヒント: ユーザ定義の型に対して is_placeholder を特殊化してプレースホルダとして扱わせることも可能である。

#include <functional>

static_assert(std::is_placeholder<decltype(std::placeholders::_1)>::value, "a placeholder");
static_assert(!std::is_placeholder< std::less<int> >::value, "not a placeholder");

int main() {}
  • std::is_placeholder[color ff0000]
  • std::placeholders::_1[link placeholders.md]
  • std::less[link less.md]

出力

バージョン

言語

  • C++11

処理系

参照