116#define __OR_DO__(_expr_) \
117 | [&](auto&& __p) -> void { \
118 __orStack__::push(nul(__p) ? _expr_ : false); \
120 if(__orStack__::pop())
122#define OR_DO __OR_DO__(nul(__p))
124#define __OR__(expr) __OR_DO__(expr) return BY_WHEN
125#define OR __OR__(nul(__p))
126#define OR_RET_CTOR __OR_DO__(nul(__p)) return
128#define OR_CONTINUE OR_DO continue
131 static void push(nbool val) { _stack.push_back(val); }
134 nbool ret = _stack.back();
140 inline static std::vector<nbool> _stack;