最終更新日時(UTC):
が更新

履歴 編集

class template
<functional>

std::is_placeholder(C++11)

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() {}

出力

バージョン

言語

  • C++11

処理系

参照