#pragma once template <class T> struct Badge { private: constexpr Badge() = default; Badge(const Badge<T>&) = delete; Badge(Badge<T>&&) = delete; friend T; };