1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#pragma once namespace AK { template<typename T> class Badge { friend T; Badge() {} Badge(const Badge&) = delete; Badge& operator=(const Badge&) = delete; Badge(Badge&&) = delete; Badge& operator=(Badge&&) = delete; }; } using AK::Badge;