/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: auTryConstruct.hpp Date: 2022-3-25 Author: Reece ***/ #pragma once struct AuCtorErrorTag { /* operator bool() const; static constexpr AuCtorCode_t Failed (); static constexpr AuCtorCode_t Success(); */ }; struct AuCtorCode_t : AuCtorErrorTag { bool value; inline constexpr AuCtorCode_t() {}; inline constexpr AuCtorCode_t(bool val) : value(val) {}; operator bool() const { return value; } static constexpr AuCtorCode_t Failed () { return AuCtorCode_t {false}; } static constexpr AuCtorCode_t Success() { return AuCtorCode_t {true}; } };