Skip to content

Instantly share code, notes, and snippets.

#include <memory>
// Исключение этого типа должно генерироваться при обращении к "пустому" Optional в функции Value
struct BadOptionalAccess {
};
template <typename T>
class Optional {
private:
// alignas нужен для правильного выравнивания блока памяти
alignas(T) unsigned char data[sizeof(T)];