OpenShot Audio Library | OpenShotAudio  0.3.3
juce_Result.h
1 /*
2  ==============================================================================
3 
4  This file is part of the JUCE library.
5  Copyright (c) 2017 - ROLI Ltd.
6 
7  JUCE is an open source library subject to commercial or open-source
8  licensing.
9 
10  The code included in this file is provided under the terms of the ISC license
11  http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12  To use, copy, modify, and/or distribute this software for any purpose with or
13  without fee is hereby granted provided that the above copyright notice and
14  this permission notice appear in all copies.
15 
16  JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17  EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18  DISCLAIMED.
19 
20  ==============================================================================
21 */
22 
23 namespace juce
24 {
25 
26 //==============================================================================
56 class JUCE_API Result
57 {
58 public:
59  //==============================================================================
61  static Result ok() noexcept { return Result(); }
62 
67  static Result fail (const String& errorMessage) noexcept;
68 
69  //==============================================================================
71  bool wasOk() const noexcept;
72 
77  bool failed() const noexcept;
78 
82  operator bool() const noexcept;
83 
87  bool operator!() const noexcept;
88 
92  const String& getErrorMessage() const noexcept;
93 
94  //==============================================================================
95  Result (const Result&);
96  Result& operator= (const Result&);
97  Result (Result&&) noexcept;
98  Result& operator= (Result&&) noexcept;
99 
100  bool operator== (const Result& other) const noexcept;
101  bool operator!= (const Result& other) const noexcept;
102 
103 private:
104  String errorMessage;
105 
106  // The default constructor is not for public use!
107  // Instead, use Result::ok() or Result::fail()
108  Result() noexcept;
109  explicit Result (const String&) noexcept;
110 
111  // These casts are private to prevent people trying to use the Result object in numeric contexts
112  operator int() const;
113  operator void*() const;
114 };
115 
116 } // namespace juce
static Result ok() noexcept
Definition: juce_Result.h:61