C++ Type Traits in SFINAE

Table of Contents

1. std::enable_if_t

std::enable_if_t can pose restrictions on types. The following example only allows integers to invoke.

  template<typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
  void foo(T value) { std::cout << value; }

The above template allows calls like foo(3) but rejects foo(3.14).

Date: 2026-06-21 Sun