SimpleITK  
sitkDetail.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 * http://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 sitkDetail_h
19 #define sitkDetail_h
20 
22 #include "Ancillary/FunctionTraits.h"
23 
25 
26 
27 template < class TMemberFunctionPointer >
29 {
30  using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
31 
32  template< typename TImageType >
33  TMemberFunctionPointer operator() ( ) const
34  {
35  return &ObjectType::template ExecuteInternal< TImageType >;
36  }
37 };
38 
39 template < class TMemberFunctionPointer >
41 {
42  using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
43 
44  template< typename TImageType1, typename TImageType2 >
45  TMemberFunctionPointer operator() ( ) const
46  {
47  return &ObjectType::template DualExecuteInternal< TImageType1, TImageType2 >;
48  }
49 
50 
51  template< typename TImageType>
52  TMemberFunctionPointer operator() ( ) const
53  {
54  return &ObjectType::template DualExecuteInternal< TImageType, TImageType >;
55  }
56 };
57 
61 template < class TMemberFunctionPointer >
63 {
64  using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
65 
66  template< typename TImageType >
67  TMemberFunctionPointer operator() ( ) const
68  {
69  return &ObjectType::template ExecuteInternalVectorImage< TImageType >;
70  }
71 };
72 
73 
77 template < class TMemberFunctionPointer >
79 {
80  using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
81 
82  template< typename TImageType1, typename TImageType2 >
83  TMemberFunctionPointer operator() ( ) const
84  {
85  return &ObjectType::template DualExecuteInternalVector< TImageType1, TImageType2 >;
86  }
87 };
88 
92 template < class TMemberFunctionPointer >
94 {
95  using ObjectType = typename ::detail::FunctionTraits<TMemberFunctionPointer>::ClassType;
96 
97  template< typename TImageType >
98  TMemberFunctionPointer operator() ( ) const
99  {
100  return &ObjectType::template ExecuteInternalLabelImage< TImageType >;
101  }
102 };
103 
104 
105 }
106 #endif
itk::simple::detail::ExecuteInternalVectorImageAddressor
Definition: sitkDetail.h:62
itk::simple::detail::MemberFunctionAddressor
Definition: sitkDetail.h:28
itk::simple::detail::ExecuteInternalVectorImageAddressor::operator()
TMemberFunctionPointer operator()() const
Definition: sitkDetail.h:67
itk::simple::detail::ExecuteInternalLabelImageAddressor::ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
Definition: sitkDetail.h:95
itk::simple::detail::DualExecuteInternalVectorAddressor::ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
Definition: sitkDetail.h:80
itk::simple::detail
Definition: sitkDetail.h:24
itk::simple::detail::MemberFunctionAddressor::ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
Definition: sitkDetail.h:30
itk::simple::detail::DualExecuteInternalVectorAddressor
Definition: sitkDetail.h:78
sitkMemberFunctionFactoryBase.h
itk::simple::detail::ExecuteInternalLabelImageAddressor
Definition: sitkDetail.h:93
itk::simple::detail::DualExecuteInternalAddressor::ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
Definition: sitkDetail.h:42
itk::simple::detail::DualExecuteInternalAddressor
Definition: sitkDetail.h:40
itk::simple::detail::DualExecuteInternalAddressor::operator()
TMemberFunctionPointer operator()() const
Definition: sitkDetail.h:45
itk::simple::detail::DualExecuteInternalVectorAddressor::operator()
TMemberFunctionPointer operator()() const
Definition: sitkDetail.h:83
itk::simple::detail::ExecuteInternalVectorImageAddressor::ObjectType
typename ::detail::FunctionTraits< TMemberFunctionPointer >::ClassType ObjectType
Definition: sitkDetail.h:64
itk::simple::detail::ExecuteInternalLabelImageAddressor::operator()
TMemberFunctionPointer operator()() const
Definition: sitkDetail.h:98
itk::simple::detail::MemberFunctionAddressor::operator()
TMemberFunctionPointer operator()() const
Definition: sitkDetail.h:33