ITK  4.8.0
Insight Segmentation and Registration Toolkit
itkIsSame.h
Go to the documentation of this file.
1  /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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 itkIsSame_h
19 #define itkIsSame_h
20 
21 namespace itk
22 {
23 
27  struct TrueType
28  {
29  typedef bool ValueType;
30  typedef TrueType Type;
31 
32  static const ValueType Value = true;
33  operator ValueType() { return Value; }
34  };
35 
36  struct FalseType
37  {
38  typedef bool ValueType;
39  typedef FalseType Type;
40  static const ValueType Value = false;
41  operator ValueType() { return Value; }
42  };
43 
44  template<typename, typename>
45  struct IsSame
46  : public FalseType
47  {
48  };
49 
50  template<typename T>
51  struct IsSame<T, T>
52  : public TrueType
53  {
54  };
55 
58 } // end namespace itk
59 
60 #endif //itkIsSame_h