#pragma once

namespace gsl
{

using zstring   = char*;
using czstring  = const char*;

template<typename T> using owner = T;

} // namespace gsl

#define Expects(EXPR) do { if (EXPR) {} else { __builtin_trap(); } } while (0)
#define Ensures(EXPR) do { if (EXPR) {} else { __builtin_trap(); } } while (0)