ITK
6.0.0
Insight Toolkit
ITK
Modules
Core
Common
include
itkDeref.h
Go to the documentation of this file.
1
/*=========================================================================
2
*
3
* Copyright NumFOCUS
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* https://www.apache.org/licenses/LICENSE-2.0.txt
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*=========================================================================*/
18
#ifndef itkDeref_h
19
#define itkDeref_h
20
21
#include "
itkMacro.h
"
22
#include <string>
23
#include <typeinfo>
24
25
namespace
itk
26
{
27
32
class
DerefError
:
public
ExceptionObject
33
{
34
public
:
35
// Inherit the constructors from its base class.
36
using
ExceptionObject::ExceptionObject;
37
39
itkOverrideGetNameOfClassMacro(
DerefError
);
40
};
47
template
<
typename
T>
48
T &
49
Deref
(T *
const
ptr)
50
{
51
if
(ptr ==
nullptr
)
52
{
53
itkSpecializedMessageExceptionMacro(
54
DerefError
,
"The pointer passed to `itk::Deref(T*)` is null! T's typeid name: `"
<<
typeid
(T).name() <<
'`'
);
55
}
56
return
*ptr;
57
}
58
}
// namespace itk
61
#endif
itk::DerefError
Definition:
itkDeref.h:32
itk::Deref
T & Deref(T *const ptr)
Definition:
itkDeref.h:49
itkMacro.h
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnatomicalOrientation.h:29
Generated on
unknown
for ITK by
1.8.16