OpenVDB  11.0.0
Exceptions.h
Go to the documentation of this file.
1 // Copyright Contributors to the OpenVDB Project
2 // SPDX-License-Identifier: MPL-2.0
3 
4 /// @file openvdb_ax/Exceptions.h
5 ///
6 /// @authors Nick Avramoussis, Richard Jones
7 ///
8 /// @brief OpenVDB AX Exceptions
9 ///
10 
11 #ifndef OPENVDB_AX_EXCEPTIONS_HAS_BEEN_INCLUDED
12 #define OPENVDB_AX_EXCEPTIONS_HAS_BEEN_INCLUDED
13 
14 #include <openvdb/version.h>
15 #include <openvdb/Exceptions.h>
16 
17 #include <sstream>
18 #include <string>
19 
20 namespace openvdb {
22 namespace OPENVDB_VERSION_NAME {
23 
24 #define OPENVDB_AX_EXCEPTION(_classname) \
25 class _classname: public Exception \
26 { \
27 public: \
28  _classname() noexcept: Exception( #_classname ) {} \
29  explicit _classname(const std::string& msg) noexcept: Exception( #_classname , &msg) {} \
30 }
31 
33 
34 // @note: Compilation errors due to invalid AX code should be collected using a separate logging system.
35 // These errors are only thrown upon encountering fatal errors within the compiler/executables themselves
41 
42 #undef OPENVDB_AX_EXCEPTION
43 
44 } // namespace OPENVDB_VERSION_NAME
45 } // namespace openvdb
46 
47 #endif // OPENVDB_AX_EXCEPTIONS_HAS_BEEN_INCLUDED
48 
Definition: Exceptions.h:38
Definition: Exceptions.h:39
Definition: Exceptions.h:40
Definition: Exceptions.h:36
Definition: Exceptions.h:13
#define OPENVDB_AX_EXCEPTION(_classname)
Definition: Exceptions.h:24
Definition: Exceptions.h:32
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h.in:121
Definition: Exceptions.h:37
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h.in:212