Maybe.h 437 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include <assimp/ai_assert.h>
  3. template <typename T>
  4. struct Maybe {
  5. private:
  6. T _val;
  7. bool _valid;
  8. public:
  9. Maybe() :
  10. _valid(false) {}
  11. explicit Maybe(const T &val) :
  12. _val(val), _valid(true) {
  13. }
  14. operator bool() const {
  15. return _valid;
  16. }
  17. const T &Get() const {
  18. ai_assert(_valid);
  19. return _val;
  20. }
  21. private:
  22. Maybe &operator&() = delete;
  23. };