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