template<typename T>↵
class SafeContainer {↵
static_assert(is_default_constructible_v<T>, "T must be default constructible");↵
static_assert(sizeof(T) <= 64, "T is too large for this container");↵
T data;↵
public:↵
SafeContainer() = default;↵
SafeContainer(const T& v) : data(v) {}↵
T get() const { return data; }↵
};↵
↵
static_assert(sizeof(int) == 4, "int must be 4 bytes");↵
static_assert(is_integral_v<int>, "int must be integral");↵
↵
SafeContainer<int> ci(42);↵
SafeContainer<string> cs("hello");↵
↵
cout << "Int: " << ci.get() << endl;↵
cout << "String: " << cs.get() << endl;