<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ITK: itkConceptChecking.h Source File</title> <link href="DoxygenStyle.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 --> <center> <a href="index.html" class="qindex">Main Page</a> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <a href="pages.html" class="qindex">Concepts</a></center> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="dir_02e23d841c198393a6e961e9a0678fff.html">Code</a> » <a class="el" href="dir_ea7fc529ede9a38b0438cf13831ae873.html">Common</a> </div> <div class="contents"> <h1>itkConceptChecking.h</h1><a href="itkConceptChecking_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*=========================================================================</span> <a name="l00002"></a>00002 <span class="comment"></span> <a name="l00003"></a>00003 <span class="comment"> Program: Insight Segmentation & Registration Toolkit</span> <a name="l00004"></a>00004 <span class="comment"> Module: $RCSfile: itkConceptChecking.h,v $</span> <a name="l00005"></a>00005 <span class="comment"> Language: C++</span> <a name="l00006"></a>00006 <span class="comment"> Date: $Date: 2008-12-10 23:24:43 $</span> <a name="l00007"></a>00007 <span class="comment"> Version: $Revision: 1.34 $</span> <a name="l00008"></a>00008 <span class="comment"></span> <a name="l00009"></a>00009 <span class="comment"> Copyright (c) Insight Software Consortium. All rights reserved.</span> <a name="l00010"></a>00010 <span class="comment"> See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.</span> <a name="l00011"></a>00011 <span class="comment"></span> <a name="l00012"></a>00012 <span class="comment"> Portions of this code are covered under the VTK copyright.</span> <a name="l00013"></a>00013 <span class="comment"> See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm for details.</span> <a name="l00014"></a>00014 <span class="comment"></span> <a name="l00015"></a>00015 <span class="comment"> This software is distributed WITHOUT ANY WARRANTY; without even </span> <a name="l00016"></a>00016 <span class="comment"> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR </span> <a name="l00017"></a>00017 <span class="comment"> PURPOSE. See the above copyright notices for more information.</span> <a name="l00018"></a>00018 <span class="comment"></span> <a name="l00019"></a>00019 <span class="comment">=========================================================================*/</span> <a name="l00020"></a>00020 <span class="preprocessor">#ifndef __itkConceptChecking_h</span> <a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define __itkConceptChecking_h</span> <a name="l00022"></a>00022 <span class="preprocessor"></span> <a name="l00023"></a>00023 <span class="preprocessor">#include "itkPixelTraits.h"</span> <a name="l00024"></a>00024 <span class="preprocessor">#include "itkNumericTraits.h"</span> <a name="l00025"></a>00025 <span class="preprocessor">#include <iostream></span> <a name="l00026"></a>00026 <a name="l00028"></a>00028 <span class="preprocessor">#ifndef ITK_CONCEPT_NO_CHECKING</span> <a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor"># if defined(_MSC_VER) && !defined(__ICL)</span> <a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor"># define ITK_CONCEPT_IMPLEMENTATION_VTABLE</span> <a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor"># elif defined(__BORLANDC__) && (__BORLANDC__ <= 0x551)</span> <a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor"># define ITK_CONCEPT_IMPLEMENTATION_VTABLE</span> <a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor"># elif defined(__MWERKS__) && (__MWERKS__ <= 0x3002)</span> <a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor"># define ITK_CONCEPT_IMPLEMENTATION_VTABLE</span> <a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor"># elif defined(__SUNPRO_CC)</span> <a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor"># define ITK_CONCEPT_IMPLEMENTATION_VTABLE</span> <a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor"># else</span> <a name="l00038"></a><a class="code" href="itkConceptChecking_8h.html#5ad0ae53f041617e0b6bd4022c173987">00038</a> <span class="preprocessor"></span><span class="preprocessor"># define ITK_CONCEPT_IMPLEMENTATION_STANDARD</span> <a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor"># endif</span> <a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00041"></a>00041 <span class="preprocessor"></span> <a name="l00043"></a>00043 <span class="preprocessor">#if defined(ITK_CONCEPT_IMPLEMENTATION_STANDARD)</span> <a name="l00044"></a>00044 <span class="preprocessor"></span> <a name="l00052"></a>00052 <span class="comment">// Leave ()'s off the sizeof to force the caller to pass them in the</span> <a name="l00053"></a>00053 <span class="comment">// concept argument of the itkConceptMacro. This is necessary because</span> <a name="l00054"></a>00054 <span class="comment">// the argument may contain commas.</span> <a name="l00055"></a><a class="code" href="itkConceptChecking_8h.html#03e74ea76574605f557c2253764df78d">00055</a> <span class="preprocessor"># define itkConceptConstraintsMacro() \</span> <a name="l00056"></a>00056 <span class="preprocessor"> template <void (Constraints::*)()> struct Enforcer {}; \</span> <a name="l00057"></a>00057 <span class="preprocessor"> typedef Enforcer<&Constraints::constraints> EnforcerInstantiation</span> <a name="l00058"></a><a class="code" href="itkConceptChecking_8h.html#009eae6c305d9c390972159815e6a710">00058</a> <span class="preprocessor"></span><span class="preprocessor"># define itkConceptMacro(name, concept) enum { name = sizeof concept }</span> <a name="l00059"></a>00059 <span class="preprocessor"></span> <a name="l00060"></a>00060 <span class="preprocessor">#elif defined(ITK_CONCEPT_IMPLEMENTATION_VTABLE)</span> <a name="l00061"></a>00061 <span class="preprocessor"></span> <a name="l00067"></a>00067 <span class="preprocessor"># define itkConceptConstraintsMacro() \</span> <a name="l00068"></a>00068 <span class="preprocessor"> virtual void Enforcer() { &Constraints::constraints; }</span> <a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor"># define itkConceptMacro(name, concept) enum { name = sizeof concept }</span> <a name="l00070"></a>00070 <span class="preprocessor"></span> <a name="l00071"></a>00071 <a name="l00072"></a>00072 <span class="preprocessor">#elif defined(ITK_CONCEPT_IMPLEMENTATION_CALL)</span> <a name="l00073"></a>00073 <span class="preprocessor"></span> <a name="l00075"></a>00075 <span class="preprocessor"># define itkConceptConstraintsMacro()</span> <a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor"># define itkConceptMacro(name, concept) enum { name = 0 }</span> <a name="l00077"></a>00077 <span class="preprocessor"></span> <a name="l00078"></a>00078 <span class="preprocessor">#else</span> <a name="l00079"></a>00079 <span class="preprocessor"></span> <a name="l00081"></a>00081 <span class="preprocessor"># define itkConceptConstraintsMacro()</span> <a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor"># define itkConceptMacro(name, concept) enum { name = 0 }</span> <a name="l00083"></a>00083 <span class="preprocessor"></span> <a name="l00084"></a>00084 <span class="preprocessor">#endif</span> <a name="l00085"></a>00085 <span class="preprocessor"></span> <a name="l00086"></a>00086 <span class="keyword">namespace </span>itk <a name="l00087"></a>00087 { <a name="l00088"></a>00088 <a name="l00091"></a><a class="code" href="namespaceitk_1_1Concept.html">00091</a> <span class="keyword">namespace </span>Concept <a name="l00092"></a>00092 { <a name="l00093"></a>00093 <a name="l00101"></a><a class="code" href="namespaceitk_1_1Concept_1_1Detail.html">00101</a> <span class="keyword">namespace </span>Detail <a name="l00102"></a>00102 { <a name="l00103"></a>00103 <a name="l00104"></a><a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType.html">00104</a> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType.html">UniqueType</a> {}; <a name="l00105"></a><a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__int.html">00105</a> <span class="keyword">template</span> <<span class="keywordtype">int</span>> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__int.html">UniqueType_int</a> {}; <a name="l00106"></a><a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">00106</a> <span class="keyword">template</span> <<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">UniqueType_unsigned_int</a> {}; <a name="l00107"></a><a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">00107</a> <span class="keyword">template</span> <<span class="keywordtype">bool</span>> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">UniqueType_bool</a> {}; <a name="l00108"></a>00108 <a name="l00109"></a>00109 <a name="l00115"></a><a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">00115</a> <span class="keyword">template</span> <<span class="keyword">typename</span> T> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">IgnoreUnusedVariable</a>(T) {} <a name="l00116"></a>00116 <a name="l00122"></a>00122 <span class="keyword">template</span> <<span class="keyword">class</span> T> <a name="l00123"></a><a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">00123</a> <span class="keywordtype">void</span> <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">RequireBooleanExpression</a>(<span class="keyword">const</span> T& t) <a name="l00124"></a>00124 { <a name="l00125"></a>00125 <span class="keywordtype">bool</span> x = t; <a name="l00126"></a>00126 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">IgnoreUnusedVariable</a>(x); <a name="l00127"></a>00127 } <a name="l00129"></a>00129 <a name="l00130"></a>00130 } <span class="comment">// namespace Detail</span> <a name="l00131"></a>00131 <a name="l00132"></a>00132 <a name="l00134"></a>00134 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00135"></a><a class="code" href="structitk_1_1Concept_1_1DefaultConstructible.html">00135</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1DefaultConstructible.html">DefaultConstructible</a> <a name="l00136"></a>00136 { <a name="l00137"></a><a class="code" href="structitk_1_1Concept_1_1DefaultConstructible_1_1Constraints.html">00137</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1DefaultConstructible_1_1Constraints.html">Constraints</a> <a name="l00138"></a>00138 { <a name="l00139"></a><a class="code" href="structitk_1_1Concept_1_1DefaultConstructible_1_1Constraints.html#3f968337a83de38bd9987b648ef72968">00139</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1DefaultConstructible_1_1Constraints.html#3f968337a83de38bd9987b648ef72968">constraints</a>() <a name="l00140"></a>00140 { <a name="l00141"></a>00141 T a; <a name="l00142"></a>00142 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00143"></a>00143 } <a name="l00144"></a>00144 }; <a name="l00146"></a>00146 <a name="l00147"></a>00147 <a class="code" href="structitk_1_1Concept_1_1DefaultConstructible.html#13312ce01d30fd0a8d4b9a98372ffe52">itkConceptConstraintsMacro</a>(); <a name="l00148"></a>00148 }; <a name="l00149"></a>00149 <a name="l00151"></a>00151 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00152"></a><a class="code" href="structitk_1_1Concept_1_1CopyConstructible.html">00152</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1CopyConstructible.html">CopyConstructible</a> <a name="l00153"></a>00153 { <a name="l00154"></a><a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html">00154</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html">Constraints</a> <a name="l00155"></a>00155 { <a name="l00156"></a><a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html#bbeafd576de813b44a514c093aae0547">00156</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html#bbeafd576de813b44a514c093aae0547">constraints</a>() <a name="l00157"></a>00157 { <a name="l00158"></a>00158 T a(<a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html#713229357b5f8e2ea7ab75adb43a471a">b</a>); <a name="l00159"></a>00159 T* p = &a; <a name="l00160"></a>00160 <a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html#31da32dbb3b88665df8af85e892e9df9">const_constraints</a>(a); <a name="l00161"></a>00161 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(p); <a name="l00162"></a>00162 } <a name="l00163"></a><a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html#31da32dbb3b88665df8af85e892e9df9">00163</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html#31da32dbb3b88665df8af85e892e9df9">const_constraints</a>(<span class="keyword">const</span> T& a) <a name="l00164"></a>00164 { <a name="l00165"></a>00165 T c(a); <a name="l00166"></a>00166 <span class="keyword">const</span> T* p = &a; <a name="l00167"></a>00167 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(c); <a name="l00168"></a>00168 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(p); <a name="l00169"></a>00169 } <a name="l00170"></a><a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html#713229357b5f8e2ea7ab75adb43a471a">00170</a> T <a class="code" href="structitk_1_1Concept_1_1CopyConstructible_1_1Constraints.html#713229357b5f8e2ea7ab75adb43a471a">b</a>; <a name="l00171"></a>00171 }; <a name="l00173"></a>00173 <a name="l00174"></a>00174 <a class="code" href="structitk_1_1Concept_1_1CopyConstructible.html#a7e689570932949ac9fa1ffcef44c795">itkConceptConstraintsMacro</a>(); <a name="l00175"></a>00175 }; <a name="l00176"></a>00176 <a name="l00178"></a>00178 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2> <a name="l00179"></a><a class="code" href="structitk_1_1Concept_1_1Convertible.html">00179</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Convertible.html">Convertible</a> <a name="l00180"></a>00180 { <a name="l00181"></a><a class="code" href="structitk_1_1Concept_1_1Convertible_1_1Constraints.html">00181</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Convertible_1_1Constraints.html">Constraints</a> <a name="l00182"></a>00182 { <a name="l00183"></a><a class="code" href="structitk_1_1Concept_1_1Convertible_1_1Constraints.html#e570f6b73d4df70561293cf56ce3f3d9">00183</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1Convertible_1_1Constraints.html#e570f6b73d4df70561293cf56ce3f3d9">constraints</a>() <a name="l00184"></a>00184 { <a name="l00185"></a>00185 T2 b = <span class="keyword">static_cast<</span>T2<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1Convertible_1_1Constraints.html#ff3a53e4c98705885cc5779d47e5824b">a</a>); <a name="l00186"></a>00186 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(b); <a name="l00187"></a>00187 } <a name="l00188"></a><a class="code" href="structitk_1_1Concept_1_1Convertible_1_1Constraints.html#ff3a53e4c98705885cc5779d47e5824b">00188</a> T1 <a class="code" href="structitk_1_1Concept_1_1Convertible_1_1Constraints.html#ff3a53e4c98705885cc5779d47e5824b">a</a>; <a name="l00189"></a>00189 }; <a name="l00190"></a>00190 <a class="code" href="structitk_1_1Concept_1_1Convertible.html#095f84781f9c499e74bd68f681fb5fcc">itkConceptConstraintsMacro</a>(); <a name="l00191"></a>00191 }; <a name="l00193"></a>00193 <a name="l00195"></a>00195 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00196"></a><a class="code" href="structitk_1_1Concept_1_1Assignable.html">00196</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Assignable.html">Assignable</a> <a name="l00197"></a>00197 { <a name="l00198"></a><a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html">00198</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html">Constraints</a> <a name="l00199"></a>00199 { <a name="l00200"></a><a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#0e0e1fceab99e15f3b9d1117c5e075a8">00200</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#0e0e1fceab99e15f3b9d1117c5e075a8">constraints</a>() <a name="l00201"></a>00201 { <a name="l00202"></a>00202 <a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#cca86da3be35b9c249b721c41c28375c">a</a> = <a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#cca86da3be35b9c249b721c41c28375c">a</a>; <a name="l00203"></a>00203 <a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#d27ecc1841a681083c3c42f07148ba15">const_constraints</a>(<a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#cca86da3be35b9c249b721c41c28375c">a</a>); <a name="l00204"></a>00204 } <a name="l00205"></a><a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#d27ecc1841a681083c3c42f07148ba15">00205</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#d27ecc1841a681083c3c42f07148ba15">const_constraints</a>(<span class="keyword">const</span> T& b) <a name="l00206"></a>00206 { <a name="l00207"></a>00207 <a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#cca86da3be35b9c249b721c41c28375c">a</a> = b; <a name="l00208"></a>00208 } <a name="l00209"></a><a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#cca86da3be35b9c249b721c41c28375c">00209</a> T <a class="code" href="structitk_1_1Concept_1_1Assignable_1_1Constraints.html#cca86da3be35b9c249b721c41c28375c">a</a>; <a name="l00210"></a>00210 }; <a name="l00212"></a>00212 <a name="l00213"></a>00213 <a class="code" href="structitk_1_1Concept_1_1Assignable.html#5f5d7916d4d6cf5db9a230e239883dc8">itkConceptConstraintsMacro</a>(); <a name="l00214"></a>00214 }; <a name="l00215"></a>00215 <a name="l00218"></a>00218 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1> <a name="l00219"></a><a class="code" href="structitk_1_1Concept_1_1LessThanComparable.html">00219</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1LessThanComparable.html">LessThanComparable</a> <a name="l00220"></a>00220 { <a name="l00221"></a><a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html">00221</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html">Constraints</a> <a name="l00222"></a>00222 { <a name="l00223"></a><a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#9f8801da538d0e3325bfa69010d88e78">00223</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#9f8801da538d0e3325bfa69010d88e78">constraints</a>() <a name="l00224"></a>00224 { <a name="l00225"></a>00225 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#cae47c81cd3855527096147a4730fa27">a</a> < <a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#4b58f4cecd997b14fca4ce7c2a33e5e9">b</a>); <a name="l00226"></a>00226 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#cae47c81cd3855527096147a4730fa27">a</a> <= <a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#4b58f4cecd997b14fca4ce7c2a33e5e9">b</a>); <a name="l00227"></a>00227 } <a name="l00228"></a><a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#cae47c81cd3855527096147a4730fa27">00228</a> T1 <a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#cae47c81cd3855527096147a4730fa27">a</a>; <a name="l00229"></a><a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#4b58f4cecd997b14fca4ce7c2a33e5e9">00229</a> T2 <a class="code" href="structitk_1_1Concept_1_1LessThanComparable_1_1Constraints.html#4b58f4cecd997b14fca4ce7c2a33e5e9">b</a>; <a name="l00230"></a>00230 }; <a name="l00232"></a>00232 <a name="l00233"></a>00233 <a class="code" href="structitk_1_1Concept_1_1LessThanComparable.html#940ecb605095f9e6ae95d0abeae6544b">itkConceptConstraintsMacro</a>(); <a name="l00234"></a>00234 }; <a name="l00235"></a>00235 <a name="l00238"></a>00238 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1> <a name="l00239"></a><a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable.html">00239</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable.html">GreaterThanComparable</a> <a name="l00240"></a>00240 { <a name="l00241"></a><a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html">00241</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html">Constraints</a> <a name="l00242"></a>00242 { <a name="l00243"></a><a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#38bb03b3425b25d968e735decc6d5df8">00243</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#38bb03b3425b25d968e735decc6d5df8">constraints</a>() <a name="l00244"></a>00244 { <a name="l00245"></a>00245 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#a22aa02f6a374867f0e4a47f065db44a">a</a> > <a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#d6c8ea5cd2d7e7537dcefe6cb31d5cd6">b</a>); <a name="l00246"></a>00246 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#a22aa02f6a374867f0e4a47f065db44a">a</a> >= <a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#d6c8ea5cd2d7e7537dcefe6cb31d5cd6">b</a>); <a name="l00247"></a>00247 } <a name="l00248"></a><a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#a22aa02f6a374867f0e4a47f065db44a">00248</a> T1 <a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#a22aa02f6a374867f0e4a47f065db44a">a</a>; <a name="l00249"></a><a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#d6c8ea5cd2d7e7537dcefe6cb31d5cd6">00249</a> T2 <a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable_1_1Constraints.html#d6c8ea5cd2d7e7537dcefe6cb31d5cd6">b</a>; <a name="l00250"></a>00250 }; <a name="l00252"></a>00252 <a name="l00253"></a>00253 <a class="code" href="structitk_1_1Concept_1_1GreaterThanComparable.html#33dded9335c88b65bc31d3581b134863">itkConceptConstraintsMacro</a>(); <a name="l00254"></a>00254 }; <a name="l00255"></a>00255 <a name="l00258"></a>00258 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1> <a name="l00259"></a><a class="code" href="structitk_1_1Concept_1_1EqualityComparable.html">00259</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1EqualityComparable.html">EqualityComparable</a> <a name="l00260"></a>00260 { <a name="l00261"></a><a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html">00261</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html">Constraints</a> <a name="l00262"></a>00262 { <a name="l00263"></a><a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#69c69e6fe168b9381027ab318ac54cf2">00263</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#69c69e6fe168b9381027ab318ac54cf2">constraints</a>() <a name="l00264"></a>00264 { <a name="l00265"></a>00265 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#1442080e59385dc421a5542c111898fc">a</a> == <a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#6e4dc95683dc3d7c40a1e1c4fa7ef2b1">b</a>); <a name="l00266"></a>00266 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#1442080e59385dc421a5542c111898fc">a</a> != <a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#6e4dc95683dc3d7c40a1e1c4fa7ef2b1">b</a>); <a name="l00267"></a>00267 } <a name="l00268"></a><a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#1442080e59385dc421a5542c111898fc">00268</a> T1 <a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#1442080e59385dc421a5542c111898fc">a</a>; <a name="l00269"></a><a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#6e4dc95683dc3d7c40a1e1c4fa7ef2b1">00269</a> T2 <a class="code" href="structitk_1_1Concept_1_1EqualityComparable_1_1Constraints.html#6e4dc95683dc3d7c40a1e1c4fa7ef2b1">b</a>; <a name="l00270"></a>00270 }; <a name="l00272"></a>00272 <a name="l00273"></a>00273 <a class="code" href="structitk_1_1Concept_1_1EqualityComparable.html#a32c9adbd940e1a9980b9ebfe36a2744">itkConceptConstraintsMacro</a>(); <a name="l00274"></a>00274 }; <a name="l00275"></a>00275 <a name="l00278"></a>00278 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1> <a name="l00279"></a><a class="code" href="structitk_1_1Concept_1_1Comparable.html">00279</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Comparable.html">Comparable</a> <a name="l00280"></a>00280 { <a name="l00281"></a><a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html">00281</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html">Constraints</a> <a name="l00282"></a>00282 { <a name="l00283"></a><a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7980050e6a679ad5c1d73fd6e5f985ab">00283</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7980050e6a679ad5c1d73fd6e5f985ab">constraints</a>() <a name="l00284"></a>00284 { <a name="l00285"></a>00285 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7357b6dde2710295a3b1f5ec16438591">a</a> < <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#b3b0f8a94ffa6a402eed554d3e1707b2">b</a>); <a name="l00286"></a>00286 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7357b6dde2710295a3b1f5ec16438591">a</a> > <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#b3b0f8a94ffa6a402eed554d3e1707b2">b</a>); <a name="l00287"></a>00287 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7357b6dde2710295a3b1f5ec16438591">a</a> <= <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#b3b0f8a94ffa6a402eed554d3e1707b2">b</a>); <a name="l00288"></a>00288 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7357b6dde2710295a3b1f5ec16438591">a</a> >= <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#b3b0f8a94ffa6a402eed554d3e1707b2">b</a>); <a name="l00289"></a>00289 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7357b6dde2710295a3b1f5ec16438591">a</a> == <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#b3b0f8a94ffa6a402eed554d3e1707b2">b</a>); <a name="l00290"></a>00290 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#3fee90cc093808c3c8a01144c8de0b68">Detail::RequireBooleanExpression</a>(<a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7357b6dde2710295a3b1f5ec16438591">a</a> != <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#b3b0f8a94ffa6a402eed554d3e1707b2">b</a>); <a name="l00291"></a>00291 } <a name="l00292"></a><a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7357b6dde2710295a3b1f5ec16438591">00292</a> T1 <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#7357b6dde2710295a3b1f5ec16438591">a</a>; <a name="l00293"></a><a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#b3b0f8a94ffa6a402eed554d3e1707b2">00293</a> T2 <a class="code" href="structitk_1_1Concept_1_1Comparable_1_1Constraints.html#b3b0f8a94ffa6a402eed554d3e1707b2">b</a>; <a name="l00294"></a>00294 }; <a name="l00296"></a>00296 <a name="l00297"></a>00297 <a class="code" href="structitk_1_1Concept_1_1Comparable.html#2f0584680f97753aac5d7c20191c9f30">itkConceptConstraintsMacro</a>(); <a name="l00298"></a>00298 }; <a name="l00299"></a>00299 <a name="l00302"></a>00302 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1, <span class="keyword">typename</span> T3=T1> <a name="l00303"></a><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators.html">00303</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators.html">AdditiveOperators</a> <a name="l00304"></a>00304 { <a name="l00305"></a><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html">00305</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html">Constraints</a> <a name="l00306"></a>00306 { <a name="l00307"></a><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#dc7632b89f3e64260fbd349ed44a1409">00307</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#dc7632b89f3e64260fbd349ed44a1409">constraints</a>() <a name="l00308"></a>00308 { <a name="l00309"></a>00309 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#9cfd31d8b404f5574a8ad267a460c4d1">b</a> + <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#ee34f781d53930ec09e356907c5ee58b">c</a>); <a name="l00310"></a>00310 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#9cfd31d8b404f5574a8ad267a460c4d1">b</a> - <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#ee34f781d53930ec09e356907c5ee58b">c</a>); <a name="l00311"></a>00311 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a> += <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#ee34f781d53930ec09e356907c5ee58b">c</a>); <a name="l00312"></a>00312 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a> -= <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#ee34f781d53930ec09e356907c5ee58b">c</a>); <a name="l00313"></a>00313 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#3de0e31ccdd8563a0eecc7ca6dc7616f">const_constraints</a>(<a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#9cfd31d8b404f5574a8ad267a460c4d1">b</a>, <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#ee34f781d53930ec09e356907c5ee58b">c</a>); <a name="l00314"></a>00314 } <a name="l00315"></a><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#3de0e31ccdd8563a0eecc7ca6dc7616f">00315</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#3de0e31ccdd8563a0eecc7ca6dc7616f">const_constraints</a>(<span class="keyword">const</span> T1& d, <span class="keyword">const</span> T2& e) <a name="l00316"></a>00316 { <a name="l00317"></a>00317 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(d + e); <a name="l00318"></a>00318 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(d - e); <a name="l00319"></a>00319 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a> += <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(e); <a name="l00320"></a>00320 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a> -= <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(e); <a name="l00321"></a>00321 } <a name="l00322"></a><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">00322</a> T3 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#4364635e1dbdfa8e0b519ae2b8e4fef0">a</a>; <a name="l00323"></a><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#9cfd31d8b404f5574a8ad267a460c4d1">00323</a> T1 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#9cfd31d8b404f5574a8ad267a460c4d1">b</a>; <a name="l00324"></a><a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#ee34f781d53930ec09e356907c5ee58b">00324</a> T2 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators_1_1Constraints.html#ee34f781d53930ec09e356907c5ee58b">c</a>; <a name="l00325"></a>00325 }; <a name="l00327"></a>00327 <a name="l00328"></a>00328 <a class="code" href="structitk_1_1Concept_1_1AdditiveOperators.html#68bf5ff2a677ebc0b25203295c4bba8a">itkConceptConstraintsMacro</a>(); <a name="l00329"></a>00329 }; <a name="l00330"></a>00330 <a name="l00332"></a>00332 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1, <span class="keyword">typename</span> T3=T1> <a name="l00333"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator.html">00333</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator.html">MultiplyOperator</a> <a name="l00334"></a>00334 { <a name="l00335"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html">00335</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html">Constraints</a> <a name="l00336"></a>00336 { <a name="l00337"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#f0bb81d09b5151e7f3c4b7fc51f8213d">00337</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#f0bb81d09b5151e7f3c4b7fc51f8213d">constraints</a>() <a name="l00338"></a>00338 { <a name="l00339"></a>00339 <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#9a0f86975fbf7cd590da5fb8fbb0747d">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#941bf9fae402d8ff7ef85143b768b812">b</a> * <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#1caff7de2d9a4c5349a123c4759ceec2">c</a>); <a name="l00340"></a>00340 <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#471685ed6110b07273a1c574fdc086ef">const_constraints</a>(<a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#941bf9fae402d8ff7ef85143b768b812">b</a>, <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#1caff7de2d9a4c5349a123c4759ceec2">c</a>); <a name="l00341"></a>00341 } <a name="l00342"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#471685ed6110b07273a1c574fdc086ef">00342</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#471685ed6110b07273a1c574fdc086ef">const_constraints</a>(<span class="keyword">const</span> T1& d, <span class="keyword">const</span> T2& e) <a name="l00343"></a>00343 { <a name="l00344"></a>00344 <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#9a0f86975fbf7cd590da5fb8fbb0747d">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(d * e); <a name="l00345"></a>00345 } <a name="l00346"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#9a0f86975fbf7cd590da5fb8fbb0747d">00346</a> T3 <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#9a0f86975fbf7cd590da5fb8fbb0747d">a</a>; <a name="l00347"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#941bf9fae402d8ff7ef85143b768b812">00347</a> T1 <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#941bf9fae402d8ff7ef85143b768b812">b</a>; <a name="l00348"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#1caff7de2d9a4c5349a123c4759ceec2">00348</a> T2 <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator_1_1Constraints.html#1caff7de2d9a4c5349a123c4759ceec2">c</a>; <a name="l00349"></a>00349 }; <a name="l00350"></a>00350 <a class="code" href="structitk_1_1Concept_1_1MultiplyOperator.html#ca7cf2b89917f06c036c3156f24e95c3">itkConceptConstraintsMacro</a>(); <a name="l00351"></a>00351 }; <a name="l00353"></a>00353 <a name="l00355"></a>00355 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1> <a name="l00356"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator.html">00356</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator.html">MultiplyAndAssignOperator</a> <a name="l00357"></a>00357 { <a name="l00358"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html">00358</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html">Constraints</a> <a name="l00359"></a>00359 { <a name="l00360"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#a5b58d247afced90a1d53c1aeb623ef2">00360</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#a5b58d247afced90a1d53c1aeb623ef2">constraints</a>() <a name="l00361"></a>00361 { <a name="l00362"></a>00362 <a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#fdb7711885ef7a6c84cb94a785e56ed6">a</a> *= <span class="keyword">static_cast<</span>T2<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#41cdb39ea54747f8a6aa2d91b5b87118">b</a>); <a name="l00363"></a>00363 <a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#9f45f75ea18409b1068e44f982c62913">const_constraints</a>(<a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#41cdb39ea54747f8a6aa2d91b5b87118">b</a>); <a name="l00364"></a>00364 } <a name="l00365"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#9f45f75ea18409b1068e44f982c62913">00365</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#9f45f75ea18409b1068e44f982c62913">const_constraints</a>(<span class="keyword">const</span> T1& d) <a name="l00366"></a>00366 { <a name="l00367"></a>00367 <a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#fdb7711885ef7a6c84cb94a785e56ed6">a</a> *= <span class="keyword">static_cast<</span>T2<span class="keyword">></span>(d); <a name="l00368"></a>00368 } <a name="l00369"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#fdb7711885ef7a6c84cb94a785e56ed6">00369</a> T2 <a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#fdb7711885ef7a6c84cb94a785e56ed6">a</a>; <a name="l00370"></a><a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#41cdb39ea54747f8a6aa2d91b5b87118">00370</a> T1 <a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator_1_1Constraints.html#41cdb39ea54747f8a6aa2d91b5b87118">b</a>; <a name="l00371"></a>00371 }; <a name="l00373"></a>00373 <a name="l00374"></a>00374 <a class="code" href="structitk_1_1Concept_1_1MultiplyAndAssignOperator.html#59604dcfb56c130d7f9626d0901e2dd4">itkConceptConstraintsMacro</a>(); <a name="l00375"></a>00375 }; <a name="l00376"></a>00376 <a name="l00378"></a>00378 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1, <span class="keyword">typename</span> T3=T1> <a name="l00379"></a><a class="code" href="structitk_1_1Concept_1_1DivisionOperators.html">00379</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1DivisionOperators.html">DivisionOperators</a> <a name="l00380"></a>00380 { <a name="l00381"></a><a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html">00381</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html">Constraints</a> <a name="l00382"></a>00382 { <a name="l00383"></a><a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#657f71ed02c49a3f3a0d429075a8c052">00383</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#657f71ed02c49a3f3a0d429075a8c052">constraints</a>() <a name="l00384"></a>00384 { <a name="l00385"></a>00385 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#99ee902067bb5be7f56ba10352ac6b9e">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#406619c4b07c7849b7e6734ce9ac0046">b</a> / <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#6b2696c1ed66ea0bc36849aaf964f843">c</a>); <a name="l00386"></a>00386 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#99ee902067bb5be7f56ba10352ac6b9e">a</a> /= <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#6b2696c1ed66ea0bc36849aaf964f843">c</a>; <a name="l00387"></a>00387 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#acb09369a938ecabc0ef2e7837848d2c">const_constraints</a>(<a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#406619c4b07c7849b7e6734ce9ac0046">b</a>, <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#6b2696c1ed66ea0bc36849aaf964f843">c</a>); <a name="l00388"></a>00388 } <a name="l00389"></a><a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#acb09369a938ecabc0ef2e7837848d2c">00389</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#acb09369a938ecabc0ef2e7837848d2c">const_constraints</a>(<span class="keyword">const</span> T1& d, <span class="keyword">const</span> T2& e) <a name="l00390"></a>00390 { <a name="l00391"></a>00391 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#99ee902067bb5be7f56ba10352ac6b9e">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(d / e); <a name="l00392"></a>00392 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#99ee902067bb5be7f56ba10352ac6b9e">a</a> /= e; <a name="l00393"></a>00393 } <a name="l00394"></a><a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#99ee902067bb5be7f56ba10352ac6b9e">00394</a> T3 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#99ee902067bb5be7f56ba10352ac6b9e">a</a>; <a name="l00395"></a><a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#406619c4b07c7849b7e6734ce9ac0046">00395</a> T1 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#406619c4b07c7849b7e6734ce9ac0046">b</a>; <a name="l00396"></a><a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#6b2696c1ed66ea0bc36849aaf964f843">00396</a> T2 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators_1_1Constraints.html#6b2696c1ed66ea0bc36849aaf964f843">c</a>; <a name="l00397"></a>00397 }; <a name="l00399"></a>00399 <a name="l00400"></a>00400 <a class="code" href="structitk_1_1Concept_1_1DivisionOperators.html#ee9d84bd1c56528a5b62a8a7673c7ba9">itkConceptConstraintsMacro</a>(); <a name="l00401"></a>00401 }; <a name="l00402"></a>00402 <a name="l00405"></a>00405 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1, <span class="keyword">typename</span> T3=T1> <a name="l00406"></a><a class="code" href="structitk_1_1Concept_1_1LogicalOperators.html">00406</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1LogicalOperators.html">LogicalOperators</a> <a name="l00407"></a>00407 { <a name="l00408"></a><a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html">00408</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html">Constraints</a> <a name="l00409"></a>00409 { <a name="l00410"></a><a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#59415911df47d8b6e47f14644ee3e4de">00410</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#59415911df47d8b6e47f14644ee3e4de">constraints</a>() <a name="l00411"></a>00411 { <a name="l00412"></a>00412 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#49e0507c2ae12ed0d22c429a2bfaa30d">b</a> & <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">c</a>); <a name="l00413"></a>00413 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#49e0507c2ae12ed0d22c429a2bfaa30d">b</a> | <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">c</a>); <a name="l00414"></a>00414 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#49e0507c2ae12ed0d22c429a2bfaa30d">b</a> ^ <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">c</a>); <a name="l00415"></a>00415 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> &= <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">c</a>); <a name="l00416"></a>00416 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> |= <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">c</a>); <a name="l00417"></a>00417 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> ^= <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">c</a>); <a name="l00418"></a>00418 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#9de7a32a24149323918b33c201a4b9bd">const_constraints</a>(<a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#49e0507c2ae12ed0d22c429a2bfaa30d">b</a>, <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">c</a>); <a name="l00419"></a>00419 } <a name="l00420"></a><a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#9de7a32a24149323918b33c201a4b9bd">00420</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#9de7a32a24149323918b33c201a4b9bd">const_constraints</a>(<span class="keyword">const</span> T1& d, <span class="keyword">const</span> T2& e) <a name="l00421"></a>00421 { <a name="l00422"></a>00422 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(d & e); <a name="l00423"></a>00423 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(d | e); <a name="l00424"></a>00424 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(d ^ e); <a name="l00425"></a>00425 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> &= <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(e); <a name="l00426"></a>00426 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> |= <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(e); <a name="l00427"></a>00427 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a> ^= <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(e); <a name="l00428"></a>00428 } <a name="l00429"></a><a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">00429</a> T3 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#dc01ddbac28f47badf8a1acbcbc00163">a</a>; <a name="l00430"></a><a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#49e0507c2ae12ed0d22c429a2bfaa30d">00430</a> T1 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#49e0507c2ae12ed0d22c429a2bfaa30d">b</a>; <a name="l00431"></a><a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">00431</a> T2 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators_1_1Constraints.html#574a55609c4512be04fff02350e5a5c1">c</a>; <a name="l00432"></a>00432 }; <a name="l00434"></a>00434 <a name="l00435"></a>00435 <a class="code" href="structitk_1_1Concept_1_1LogicalOperators.html#8ef67925a28200b85f3d2614ded40fb6">itkConceptConstraintsMacro</a>(); <a name="l00436"></a>00436 }; <a name="l00437"></a>00437 <a name="l00439"></a>00439 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2=T1, <span class="keyword">typename</span> T3=T1> <a name="l00440"></a><a class="code" href="structitk_1_1Concept_1_1BracketOperator.html">00440</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1BracketOperator.html">BracketOperator</a> <a name="l00441"></a>00441 { <a name="l00442"></a><a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html">00442</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html">Constraints</a> <a name="l00443"></a>00443 { <a name="l00444"></a><a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#cc7d9adfc4d335164a2d51f7232a4811">00444</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#cc7d9adfc4d335164a2d51f7232a4811">constraints</a>() <a name="l00445"></a>00445 { <a name="l00446"></a>00446 <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#95e915b782c8d7848390f4f424391c89">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(<a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#20f121432d3ee1b0665378babf5f5839">b</a> [ <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#dc92f7e7de5d3ec1f1427b1c3d9c3804">c</a> ]); <a name="l00447"></a>00447 <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#ca37a404e917991a187254ef5c32f78f">const_constraints</a>(<a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#20f121432d3ee1b0665378babf5f5839">b</a>, <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#dc92f7e7de5d3ec1f1427b1c3d9c3804">c</a>); <a name="l00448"></a>00448 } <a name="l00449"></a><a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#ca37a404e917991a187254ef5c32f78f">00449</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#ca37a404e917991a187254ef5c32f78f">const_constraints</a>(<span class="keyword">const</span> T1& d, <span class="keyword">const</span> T2& e) <a name="l00450"></a>00450 { <a name="l00451"></a>00451 <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#95e915b782c8d7848390f4f424391c89">a</a> = <span class="keyword">static_cast<</span>T3<span class="keyword">></span>(d [ e ]); <a name="l00452"></a>00452 } <a name="l00453"></a><a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#95e915b782c8d7848390f4f424391c89">00453</a> T3 <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#95e915b782c8d7848390f4f424391c89">a</a>; <a name="l00454"></a><a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#20f121432d3ee1b0665378babf5f5839">00454</a> T1 <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#20f121432d3ee1b0665378babf5f5839">b</a>; <a name="l00455"></a><a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#dc92f7e7de5d3ec1f1427b1c3d9c3804">00455</a> T2 <a class="code" href="structitk_1_1Concept_1_1BracketOperator_1_1Constraints.html#dc92f7e7de5d3ec1f1427b1c3d9c3804">c</a>; <a name="l00456"></a>00456 }; <a name="l00458"></a>00458 <a name="l00459"></a>00459 <a class="code" href="structitk_1_1Concept_1_1BracketOperator.html#5123ef32fbb98167ea28d637af7aa64e">itkConceptConstraintsMacro</a>(); <a name="l00460"></a>00460 }; <a name="l00461"></a>00461 <a name="l00462"></a>00462 <a name="l00464"></a>00464 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00465"></a><a class="code" href="structitk_1_1Concept_1_1NotOperator.html">00465</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1NotOperator.html">NotOperator</a> <a name="l00466"></a>00466 { <a name="l00467"></a><a class="code" href="structitk_1_1Concept_1_1NotOperator_1_1Constraints.html">00467</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1NotOperator_1_1Constraints.html">Constraints</a> <a name="l00468"></a>00468 { <a name="l00469"></a><a class="code" href="structitk_1_1Concept_1_1NotOperator_1_1Constraints.html#31b0a757e0ac85d754f513f23df1fce8">00469</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1NotOperator_1_1Constraints.html#31b0a757e0ac85d754f513f23df1fce8">constraints</a>() <a name="l00470"></a>00470 { <a name="l00471"></a>00471 <a class="code" href="structitk_1_1Concept_1_1NotOperator_1_1Constraints.html#0ee9853c5f4247f414040dbdc5d5f74c">a</a> = !<a class="code" href="structitk_1_1Concept_1_1NotOperator_1_1Constraints.html#0ee9853c5f4247f414040dbdc5d5f74c">a</a>; <a name="l00472"></a>00472 } <a name="l00473"></a><a class="code" href="structitk_1_1Concept_1_1NotOperator_1_1Constraints.html#0ee9853c5f4247f414040dbdc5d5f74c">00473</a> T <a class="code" href="structitk_1_1Concept_1_1NotOperator_1_1Constraints.html#0ee9853c5f4247f414040dbdc5d5f74c">a</a>; <a name="l00474"></a>00474 }; <a name="l00475"></a>00475 <a name="l00476"></a>00476 <a class="code" href="structitk_1_1Concept_1_1NotOperator.html#2209ea288fd1b65d9da7ee34acec502e">itkConceptConstraintsMacro</a>(); <a name="l00477"></a>00477 }; <a name="l00478"></a>00478 <a name="l00480"></a>00480 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00481"></a><a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators.html">00481</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators.html">IncrementDecrementOperators</a> <a name="l00482"></a>00482 { <a name="l00483"></a><a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html">00483</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html">Constraints</a> <a name="l00484"></a>00484 { <a name="l00485"></a><a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html#e312f22f4c63f8c50d26909ded87bee8">00485</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html#e312f22f4c63f8c50d26909ded87bee8">constraints</a>() <a name="l00486"></a>00486 { <a name="l00487"></a>00487 <a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html#584aaf35498d89e73bfa743d2523030c">a</a>++; <a name="l00488"></a>00488 <a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html#584aaf35498d89e73bfa743d2523030c">a</a>--; <a name="l00489"></a>00489 ++<a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html#584aaf35498d89e73bfa743d2523030c">a</a>; <a name="l00490"></a>00490 --<a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html#584aaf35498d89e73bfa743d2523030c">a</a>; <a name="l00491"></a>00491 } <a name="l00492"></a><a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html#584aaf35498d89e73bfa743d2523030c">00492</a> T <a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators_1_1Constraints.html#584aaf35498d89e73bfa743d2523030c">a</a>; <a name="l00493"></a>00493 }; <a name="l00494"></a>00494 <a name="l00495"></a>00495 <a class="code" href="structitk_1_1Concept_1_1IncrementDecrementOperators.html#654bc149ec88287ff0d903ec543d089b">itkConceptConstraintsMacro</a>(); <a name="l00496"></a>00496 }; <a name="l00497"></a>00497 <a name="l00499"></a>00499 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00500"></a><a class="code" href="structitk_1_1Concept_1_1OStreamWritable.html">00500</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1OStreamWritable.html">OStreamWritable</a> <a name="l00501"></a>00501 { <a name="l00502"></a><a class="code" href="structitk_1_1Concept_1_1OStreamWritable_1_1Constraints.html">00502</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1OStreamWritable_1_1Constraints.html">Constraints</a> <a name="l00503"></a>00503 { <a name="l00504"></a><a class="code" href="structitk_1_1Concept_1_1OStreamWritable_1_1Constraints.html#de1e2540e486abd2b43ab889aecd4d97">00504</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1OStreamWritable_1_1Constraints.html#de1e2540e486abd2b43ab889aecd4d97">constraints</a>() <a name="l00505"></a>00505 { <a name="l00506"></a>00506 std::cout << <a class="code" href="structitk_1_1Concept_1_1OStreamWritable_1_1Constraints.html#70c3c0694b73d6755597fe56300ec613">a</a>; <a name="l00507"></a>00507 } <a name="l00508"></a><a class="code" href="structitk_1_1Concept_1_1OStreamWritable_1_1Constraints.html#70c3c0694b73d6755597fe56300ec613">00508</a> T <a class="code" href="structitk_1_1Concept_1_1OStreamWritable_1_1Constraints.html#70c3c0694b73d6755597fe56300ec613">a</a>; <a name="l00509"></a>00509 }; <a name="l00510"></a>00510 <a name="l00511"></a>00511 <a class="code" href="structitk_1_1Concept_1_1OStreamWritable.html#0573d6d5446b24c71a6e0c19ba74fa34">itkConceptConstraintsMacro</a>(); <a name="l00512"></a>00512 }; <a name="l00513"></a>00513 <a name="l00515"></a>00515 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00516"></a><a class="code" href="structitk_1_1Concept_1_1Signed.html">00516</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Signed.html">Signed</a> <a name="l00517"></a>00517 { <a name="l00518"></a><a class="code" href="structitk_1_1Concept_1_1Signed.html#71fe2ec567971c4b70f595dfbe488e3d">00518</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Signed.html">Signed</a> <a class="code" href="structitk_1_1Concept_1_1Signed.html">Self</a>; <a name="l00519"></a>00519 <a class="code" href="structitk_1_1Concept_1_1Signed.html#afc05c1be253cd8e5a76a84ad8274044">itkStaticConstMacro</a>(IsSigned, <span class="keywordtype">bool</span>, NumericTraits<T>::is_signed); <a name="l00520"></a><a class="code" href="structitk_1_1Concept_1_1Signed_1_1Constraints.html">00520</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1Signed_1_1Constraints.html">Constraints</a> <a name="l00521"></a>00521 { <a name="l00522"></a><a class="code" href="structitk_1_1Concept_1_1Signed_1_1Constraints.html#fbf0b7624ac3255667ddd77ea975b72b">00522</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<true></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">TrueT</a>; <a name="l00523"></a><a class="code" href="structitk_1_1Concept_1_1Signed_1_1Constraints.html#8f3153db6d9446b0c99b04739778c9f3">00523</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<itkGetStaticConstMacro(IsSigned)></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">SignedT</a>; <a name="l00524"></a><a class="code" href="structitk_1_1Concept_1_1Signed_1_1Constraints.html#591ea913a12d5b51977a7f267719ce43">00524</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1Signed_1_1Constraints.html#591ea913a12d5b51977a7f267719ce43">constraints</a>() <a name="l00525"></a>00525 { <a name="l00526"></a>00526 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">SignedT</a> a = <a class="code" href="structitk_1_1Concept_1_1Signed_1_1Constraints.html#fbf0b7624ac3255667ddd77ea975b72b">TrueT</a>(); <a name="l00527"></a>00527 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00528"></a>00528 } <a name="l00529"></a>00529 }; <a name="l00531"></a>00531 <a name="l00532"></a>00532 <a class="code" href="structitk_1_1Concept_1_1Signed.html#858c92bffbf1a207950ce4538b3c8474">itkConceptConstraintsMacro</a>(); <a name="l00533"></a>00533 }; <a name="l00534"></a>00534 <a name="l00536"></a>00536 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2> <a name="l00537"></a><a class="code" href="structitk_1_1Concept_1_1SameType.html">00537</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1SameType.html">SameType</a> <a name="l00538"></a>00538 { <a name="l00539"></a><a class="code" href="structitk_1_1Concept_1_1SameType_1_1Constraints.html">00539</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1SameType_1_1Constraints.html">Constraints</a> <a name="l00540"></a>00540 { <a name="l00541"></a><a class="code" href="structitk_1_1Concept_1_1SameType_1_1Constraints.html#c45528d86e8f5e0d5b03c61086728fae">00541</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1SameType_1_1Constraints.html#c45528d86e8f5e0d5b03c61086728fae">constraints</a>() <a name="l00542"></a>00542 { <a name="l00543"></a>00543 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType.html">Detail::UniqueType<T1></a> a = <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType.html">Detail::UniqueType<T2></a>(); <a name="l00544"></a>00544 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00545"></a>00545 } <a name="l00546"></a>00546 }; <a name="l00547"></a>00547 <a class="code" href="structitk_1_1Concept_1_1SameType.html#416e913ab0e0d7055e90fdc55e11fcc2">itkConceptConstraintsMacro</a>(); <a name="l00548"></a>00548 }; <a name="l00550"></a>00550 <a name="l00552"></a>00552 <span class="keyword">template</span> <<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> D1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> D2> <a name="l00553"></a><a class="code" href="structitk_1_1Concept_1_1SameDimension.html">00553</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1SameDimension.html">SameDimension</a> <a name="l00554"></a>00554 { <a name="l00555"></a><a class="code" href="structitk_1_1Concept_1_1SameDimension_1_1Constraints.html">00555</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1SameDimension_1_1Constraints.html">Constraints</a> <a name="l00556"></a>00556 { <a name="l00557"></a><a class="code" href="structitk_1_1Concept_1_1SameDimension_1_1Constraints.html#e53946a54201aafd48844f8d1ff127df">00557</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Detail::UniqueType_unsigned_int<D1></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">DT1</a>; <a name="l00558"></a><a class="code" href="structitk_1_1Concept_1_1SameDimension_1_1Constraints.html#dac9e6b5d2fd2d6c731e6d500cbb5c71">00558</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Detail::UniqueType_unsigned_int<D2></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">DT2</a>; <a name="l00559"></a><a class="code" href="structitk_1_1Concept_1_1SameDimension_1_1Constraints.html#d30e1f438eae6f95ec4fab6295b0dfd9">00559</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1SameDimension_1_1Constraints.html#d30e1f438eae6f95ec4fab6295b0dfd9">constraints</a>() <a name="l00560"></a>00560 { <a name="l00561"></a>00561 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">DT1</a> a = <a class="code" href="structitk_1_1Concept_1_1SameDimension_1_1Constraints.html#dac9e6b5d2fd2d6c731e6d500cbb5c71">DT2</a>(); <a name="l00562"></a>00562 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00563"></a>00563 } <a name="l00564"></a>00564 }; <a name="l00565"></a>00565 <a class="code" href="structitk_1_1Concept_1_1SameDimension.html#cede1efda1ab6b30b34dd7ac2936eede">itkConceptConstraintsMacro</a>(); <a name="l00566"></a>00566 }; <a name="l00568"></a>00568 <a name="l00570"></a>00570 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00571"></a><a class="code" href="structitk_1_1Concept_1_1HasNumericTraits.html">00571</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasNumericTraits.html">HasNumericTraits</a> <a name="l00572"></a>00572 { <a name="l00573"></a><a class="code" href="structitk_1_1Concept_1_1HasNumericTraits_1_1Constraints.html">00573</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasNumericTraits_1_1Constraints.html">Constraints</a> <a name="l00574"></a>00574 { <a name="l00575"></a><a class="code" href="structitk_1_1Concept_1_1HasNumericTraits_1_1Constraints.html#db0b16ec714cd89c69d3e1252bfb84c4">00575</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1HasNumericTraits_1_1Constraints.html#db0b16ec714cd89c69d3e1252bfb84c4">constraints</a>() <a name="l00576"></a>00576 { <a name="l00577"></a>00577 <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits<T>::ValueType ValueType; <a name="l00578"></a>00578 <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits<T>::PrintType PrintType; <a name="l00579"></a>00579 <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits<T>::AbsType AbsType; <a name="l00580"></a>00580 <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits<T>::AccumulateType AccumulateType; <a name="l00581"></a>00581 <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits<T>::RealType RealType; <a name="l00582"></a>00582 <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits<T>::ScalarRealType ScalarRealType; <a name="l00583"></a>00583 <span class="keyword">typedef</span> <span class="keyword">typename</span> NumericTraits<T>::FloatType FloatType; <a name="l00584"></a>00584 T a; <a name="l00585"></a>00585 <span class="keywordtype">bool</span> b; <a name="l00586"></a>00586 a = NumericTraits<T>::Zero; <a name="l00587"></a>00587 a = NumericTraits<T>::One; <a name="l00588"></a>00588 a = NumericTraits<T>::NonpositiveMin(); <a name="l00589"></a>00589 a = NumericTraits<T>::ZeroValue(); <a name="l00590"></a>00590 b = NumericTraits<T>::IsPositive(a); <a name="l00591"></a>00591 b = NumericTraits<T>::IsNonpositive(a); <a name="l00592"></a>00592 b = NumericTraits<T>::IsNegative(a); <a name="l00593"></a>00593 b = NumericTraits<T>::IsNonnegative(a); <a name="l00594"></a>00594 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00595"></a>00595 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(b); <a name="l00596"></a>00596 } <a name="l00597"></a>00597 }; <a name="l00599"></a>00599 <a name="l00600"></a>00600 <a class="code" href="structitk_1_1Concept_1_1HasNumericTraits.html#ac12c3afa245bea11a96f6bfb9a77faf">itkConceptConstraintsMacro</a>(); <a name="l00601"></a>00601 }; <a name="l00602"></a>00602 <a name="l00604"></a>00604 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00605"></a><a class="code" href="structitk_1_1Concept_1_1HasPixelTraits.html">00605</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasPixelTraits.html">HasPixelTraits</a> <a name="l00606"></a>00606 { <a name="l00607"></a><a class="code" href="structitk_1_1Concept_1_1HasPixelTraits_1_1Constraints.html">00607</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasPixelTraits_1_1Constraints.html">Constraints</a> <a name="l00608"></a>00608 { <a name="l00609"></a><a class="code" href="structitk_1_1Concept_1_1HasPixelTraits_1_1Constraints.html#ebc7fe090077340e0ab06ecdb36c3b79">00609</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1HasPixelTraits_1_1Constraints.html#ebc7fe090077340e0ab06ecdb36c3b79">constraints</a>() <a name="l00610"></a>00610 { <a name="l00611"></a>00611 <span class="keyword">typedef</span> <span class="keyword">typename</span> PixelTraits<T>::ValueType ValueType; <a name="l00612"></a>00612 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> a = PixelTraits<T>::Dimension; <a name="l00613"></a>00613 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00614"></a>00614 } <a name="l00615"></a>00615 }; <a name="l00617"></a>00617 <a name="l00618"></a>00618 <a class="code" href="structitk_1_1Concept_1_1HasPixelTraits.html#98c0136cb439144ab9fc44636b8473a3">itkConceptConstraintsMacro</a>(); <a name="l00619"></a>00619 }; <a name="l00620"></a>00620 <a name="l00622"></a>00622 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00623"></a><a class="code" href="structitk_1_1Concept_1_1HasValueType.html">00623</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasValueType.html">HasValueType</a> <a name="l00624"></a>00624 { <a name="l00625"></a><a class="code" href="structitk_1_1Concept_1_1HasValueType_1_1Constraints.html">00625</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasValueType_1_1Constraints.html">Constraints</a> <a name="l00626"></a>00626 { <a name="l00627"></a><a class="code" href="structitk_1_1Concept_1_1HasValueType_1_1Constraints.html#7611c70f2965fc8c62f3c2ff1f2d1484">00627</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1HasValueType_1_1Constraints.html#7611c70f2965fc8c62f3c2ff1f2d1484">constraints</a>() <a name="l00628"></a>00628 { <a name="l00629"></a>00629 <span class="keyword">typedef</span> <span class="keyword">typename</span> T::ValueType ValueType; <a name="l00630"></a>00630 } <a name="l00631"></a>00631 }; <a name="l00632"></a>00632 <a name="l00633"></a>00633 <a class="code" href="structitk_1_1Concept_1_1HasValueType.html#e24ff2edf0779c2b519bbb5912f8d939">itkConceptConstraintsMacro</a>(); <a name="l00634"></a>00634 }; <a name="l00635"></a>00635 <a name="l00636"></a>00636 <a name="l00638"></a>00638 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00639"></a><a class="code" href="structitk_1_1Concept_1_1HasZero.html">00639</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasZero.html">HasZero</a> <a name="l00640"></a>00640 { <a name="l00641"></a><a class="code" href="structitk_1_1Concept_1_1HasZero_1_1Constraints.html">00641</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasZero_1_1Constraints.html">Constraints</a> <a name="l00642"></a>00642 { <a name="l00643"></a><a class="code" href="structitk_1_1Concept_1_1HasZero_1_1Constraints.html#74185979b8464985d35c9a222f949d2d">00643</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1HasZero_1_1Constraints.html#74185979b8464985d35c9a222f949d2d">constraints</a>() <a name="l00644"></a>00644 { <a name="l00645"></a>00645 T a; <a name="l00646"></a>00646 a = NumericTraits<T>::Zero; <a name="l00647"></a>00647 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00648"></a>00648 } <a name="l00649"></a>00649 }; <a name="l00651"></a>00651 <a name="l00652"></a>00652 <a class="code" href="structitk_1_1Concept_1_1HasZero.html#cb539c7979b466946dcb96be9599d19e">itkConceptConstraintsMacro</a>(); <a name="l00653"></a>00653 }; <a name="l00654"></a>00654 <a name="l00656"></a>00656 <span class="keyword">template</span> <<span class="keyword">typename</span> T1, <span class="keyword">typename</span> T2> <a name="l00657"></a><a class="code" href="structitk_1_1Concept_1_1HasJoinTraits.html">00657</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasJoinTraits.html">HasJoinTraits</a> <a name="l00658"></a>00658 { <a name="l00659"></a><a class="code" href="structitk_1_1Concept_1_1HasJoinTraits_1_1Constraints.html">00659</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1HasJoinTraits_1_1Constraints.html">Constraints</a> <a name="l00660"></a>00660 { <a name="l00661"></a><a class="code" href="structitk_1_1Concept_1_1HasJoinTraits_1_1Constraints.html#f565d2035457851b5261d2e25eef52c2">00661</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1HasJoinTraits_1_1Constraints.html#f565d2035457851b5261d2e25eef52c2">constraints</a>() <a name="l00662"></a>00662 { <a name="l00663"></a>00663 <span class="keyword">typedef</span> <span class="keyword">typename</span> JoinTraits<T1, T2>::ValueType ValueType; <a name="l00664"></a>00664 } <a name="l00665"></a>00665 }; <a name="l00666"></a>00666 <a name="l00667"></a>00667 <a class="code" href="structitk_1_1Concept_1_1HasJoinTraits.html#8bd07aa8d96543665ba9a0b9574462f0">itkConceptConstraintsMacro</a>(); <a name="l00668"></a>00668 }; <a name="l00669"></a>00669 <a name="l00671"></a>00671 <span class="keyword">template</span> <<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> D1, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> D2> <a name="l00672"></a><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne.html">00672</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne.html">SameDimensionOrMinusOne</a> <a name="l00673"></a>00673 { <a name="l00674"></a><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html">00674</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html">Constraints</a> <a name="l00675"></a>00675 { <a name="l00676"></a><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#34d9c6c858109a1d733c878be0874fda">00676</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Detail::UniqueType_unsigned_int< D1 ></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Type1</a>; <a name="l00677"></a><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#0d5b8611d43d36ca05f217547fb1b087">00677</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Detail::UniqueType_unsigned_int</a>< D1-1 > <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Type2</a>; <a name="l00678"></a>00678 <a name="l00679"></a><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#3d049f08de61a13a6d08323e0a100284">00679</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#3d049f08de61a13a6d08323e0a100284">f</a>( <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Type1</a> ) {} <a name="l00680"></a><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#58a6197782966ffbb0679f51064feff7">00680</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#58a6197782966ffbb0679f51064feff7">f</a>( <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Type2</a>, <span class="keywordtype">int</span> = 0 ) {} <a name="l00681"></a>00681 <a name="l00682"></a><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#65f78305b81261faa61e0c5a2e7c38b4">00682</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#65f78305b81261faa61e0c5a2e7c38b4">constraints</a>() <a name="l00683"></a>00683 { <a name="l00684"></a>00684 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__unsigned__int.html">Detail::UniqueType_unsigned_int< D2 ></a> tt; <a name="l00685"></a>00685 this-><a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne_1_1Constraints.html#3d049f08de61a13a6d08323e0a100284">f</a>( tt ); <a name="l00686"></a>00686 } <a name="l00687"></a>00687 }; <a name="l00688"></a>00688 <a class="code" href="structitk_1_1Concept_1_1SameDimensionOrMinusOne.html#2a489825ec68a83e814c002529cd13c4">itkConceptConstraintsMacro</a>(); <a name="l00689"></a>00689 }; <a name="l00690"></a>00690 <a name="l00692"></a>00692 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00693"></a><a class="code" href="structitk_1_1Concept_1_1IsInteger.html">00693</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IsInteger.html">IsInteger</a> <a name="l00694"></a>00694 { <a name="l00695"></a><a class="code" href="structitk_1_1Concept_1_1IsInteger.html#9811212aff22367b06ef4b9cc771e013">00695</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1IsInteger.html">IsInteger</a> <a class="code" href="structitk_1_1Concept_1_1IsInteger.html">Self</a>; <a name="l00696"></a>00696 <a class="code" href="structitk_1_1Concept_1_1IsInteger.html#f46cbe285c0b7975a1e4895671d3cd90">itkStaticConstMacro</a>(Integral, <span class="keywordtype">bool</span>, NumericTraits<T>::is_integer); <a name="l00697"></a><a class="code" href="structitk_1_1Concept_1_1IsInteger_1_1Constraints.html">00697</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IsInteger_1_1Constraints.html">Constraints</a> <a name="l00698"></a>00698 { <a name="l00699"></a><a class="code" href="structitk_1_1Concept_1_1IsInteger_1_1Constraints.html#b48749307d21311fdb44c308f5c7b56b">00699</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<true></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">TrueT</a>; <a name="l00700"></a><a class="code" href="structitk_1_1Concept_1_1IsInteger_1_1Constraints.html#c79490f03b1b50db152eca5c4295a5e8">00700</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<itkGetStaticConstMacro(Integral)></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">IntegralT</a>; <a name="l00701"></a><a class="code" href="structitk_1_1Concept_1_1IsInteger_1_1Constraints.html#e575705a39127aded2f7e908ef7f3705">00701</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1IsInteger_1_1Constraints.html#e575705a39127aded2f7e908ef7f3705">constraints</a>() <a name="l00702"></a>00702 { <a name="l00703"></a>00703 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">IntegralT</a> a = <a class="code" href="structitk_1_1Concept_1_1IsInteger_1_1Constraints.html#b48749307d21311fdb44c308f5c7b56b">TrueT</a>(); <a name="l00704"></a>00704 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00705"></a>00705 } <a name="l00706"></a>00706 }; <a name="l00708"></a>00708 <a name="l00709"></a>00709 <a class="code" href="structitk_1_1Concept_1_1IsInteger.html#f82cb0087e8e0cb82ec3b3454741d008">itkConceptConstraintsMacro</a>(); <a name="l00710"></a>00710 }; <a name="l00711"></a>00711 <a name="l00713"></a>00713 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00714"></a><a class="code" href="structitk_1_1Concept_1_1IsNonInteger.html">00714</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IsNonInteger.html">IsNonInteger</a> <a name="l00715"></a>00715 { <a name="l00716"></a><a class="code" href="structitk_1_1Concept_1_1IsNonInteger.html#2182ef6c7b78024565454295cb6a77a4">00716</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1IsNonInteger.html">IsNonInteger</a> <a class="code" href="structitk_1_1Concept_1_1IsNonInteger.html">Self</a>; <a name="l00717"></a>00717 <a class="code" href="structitk_1_1Concept_1_1IsNonInteger.html#2709beb564b2ea9e035aed9bc278723d">itkStaticConstMacro</a>(NonIntegral, <span class="keywordtype">bool</span>, NumericTraits<T>::is_integer); <a name="l00718"></a><a class="code" href="structitk_1_1Concept_1_1IsNonInteger_1_1Constraints.html">00718</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IsNonInteger_1_1Constraints.html">Constraints</a> <a name="l00719"></a>00719 { <a name="l00720"></a><a class="code" href="structitk_1_1Concept_1_1IsNonInteger_1_1Constraints.html#2dab3c070218665768a8a7c43f88ef31">00720</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<false></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">FalseT</a>; <a name="l00721"></a><a class="code" href="structitk_1_1Concept_1_1IsNonInteger_1_1Constraints.html#b064649914bbd2157dbee3688a69b422">00721</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<itkGetStaticConstMacro(NonIntegral)></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">NonIntegralT</a>; <a name="l00722"></a><a class="code" href="structitk_1_1Concept_1_1IsNonInteger_1_1Constraints.html#0c464e8067a061a9b2a4431828995081">00722</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1IsNonInteger_1_1Constraints.html#0c464e8067a061a9b2a4431828995081">constraints</a>() <a name="l00723"></a>00723 { <a name="l00724"></a>00724 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">NonIntegralT</a> a = <a class="code" href="structitk_1_1Concept_1_1IsNonInteger_1_1Constraints.html#2dab3c070218665768a8a7c43f88ef31">FalseT</a>(); <a name="l00725"></a>00725 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00726"></a>00726 } <a name="l00727"></a>00727 }; <a name="l00729"></a>00729 <a name="l00730"></a>00730 <a class="code" href="structitk_1_1Concept_1_1IsNonInteger.html#9cb2423682d2318f3164e61191d452b5">itkConceptConstraintsMacro</a>(); <a name="l00731"></a>00731 }; <a name="l00732"></a>00732 <a name="l00734"></a>00734 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00735"></a><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint.html">00735</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint.html">IsFloatingPoint</a> <a name="l00736"></a>00736 { <a name="l00737"></a><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint.html#93aa6df1adf50be2ac5d3fdadc889eb9">00737</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint.html">IsFloatingPoint</a> <a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint.html">Self</a>; <a name="l00738"></a>00738 <a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint.html#6d212e308d5cb580b453896513606677">itkStaticConstMacro</a>(Integral, <span class="keywordtype">bool</span>, NumericTraits<T>::is_integer); <a name="l00739"></a>00739 <a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint.html#6d212e308d5cb580b453896513606677">itkStaticConstMacro</a>(IsExact, <span class="keywordtype">bool</span>, NumericTraits<T>::is_exact); <a name="l00740"></a><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html">00740</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html">Constraints</a> <a name="l00741"></a>00741 { <a name="l00742"></a><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html#76e62fa83d866e8188ddb9db803d3e4a">00742</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<false></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">FalseT</a>; <a name="l00743"></a><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html#30e2ecf9265e05fe9fd5938271392251">00743</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<itkGetStaticConstMacro(Integral)></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">IntegralT</a>; <a name="l00744"></a><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html#878277844e839c48c4b59b8c81c1d1a0">00744</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<itkGetStaticConstMacro(IsExact)></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">ExactT</a>; <a name="l00745"></a><a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html#34e34deec3e787956e82183b0355bdf5">00745</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html#34e34deec3e787956e82183b0355bdf5">constraints</a>() <a name="l00746"></a>00746 { <a name="l00747"></a>00747 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">IntegralT</a> a = <a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html#76e62fa83d866e8188ddb9db803d3e4a">FalseT</a>(); <a name="l00748"></a>00748 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">ExactT</a> b = <a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint_1_1Constraints.html#76e62fa83d866e8188ddb9db803d3e4a">FalseT</a>(); <a name="l00749"></a>00749 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00750"></a>00750 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(b); <a name="l00751"></a>00751 } <a name="l00752"></a>00752 }; <a name="l00754"></a>00754 <a name="l00755"></a>00755 <a class="code" href="structitk_1_1Concept_1_1IsFloatingPoint.html#8ce9f68301735da9f4115b7af003a099">itkConceptConstraintsMacro</a>(); <a name="l00756"></a>00756 }; <a name="l00757"></a>00757 <a name="l00759"></a>00759 <span class="keyword">template</span> <<span class="keyword">typename</span> T> <a name="l00760"></a><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint.html">00760</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint.html">IsFixedPoint</a> <a name="l00761"></a>00761 { <a name="l00762"></a><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint.html#c26c3954b791209b161b94ecb5e0e3bc">00762</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1IsFixedPoint.html">IsFixedPoint</a> <a class="code" href="structitk_1_1Concept_1_1IsFixedPoint.html">Self</a>; <a name="l00763"></a>00763 <a class="code" href="structitk_1_1Concept_1_1IsFixedPoint.html#c98e96bce62124139ff5fbd47b810b15">itkStaticConstMacro</a>(Integral, <span class="keywordtype">bool</span>, NumericTraits<T>::is_integer); <a name="l00764"></a>00764 <a class="code" href="structitk_1_1Concept_1_1IsFixedPoint.html#c98e96bce62124139ff5fbd47b810b15">itkStaticConstMacro</a>(IsExact, <span class="keywordtype">bool</span>, NumericTraits<T>::is_exact); <a name="l00765"></a><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html">00765</a> <span class="keyword">struct </span><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html">Constraints</a> <a name="l00766"></a>00766 { <a name="l00767"></a><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html#00b8c2ad3723b6eac701bd4eb6bdcb72">00767</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<true></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">TrueT</a>; <a name="l00768"></a><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html#dd66ba249237305bfac296556e33d5f2">00768</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<false></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">FalseT</a>; <a name="l00769"></a><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html#78699f4729b5dd028c1d0848bd39134f">00769</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<itkGetStaticConstMacro(Integral)></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">IntegralT</a>; <a name="l00770"></a><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html#f76612e98d0d9bd53124fd4c8181054f">00770</a> <span class="keyword">typedef</span> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">Detail::UniqueType_bool<itkGetStaticConstMacro(IsExact)></a> <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">ExactT</a>; <a name="l00771"></a><a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html#e48822fd022eb4a52d226c3f6fc55932">00771</a> <span class="keywordtype">void</span> <a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html#e48822fd022eb4a52d226c3f6fc55932">constraints</a>() <a name="l00772"></a>00772 { <a name="l00773"></a>00773 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">IntegralT</a> a = <a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html#dd66ba249237305bfac296556e33d5f2">FalseT</a>(); <a name="l00774"></a>00774 <a class="code" href="structitk_1_1Concept_1_1Detail_1_1UniqueType__bool.html">ExactT</a> b = <a class="code" href="structitk_1_1Concept_1_1IsFixedPoint_1_1Constraints.html#00b8c2ad3723b6eac701bd4eb6bdcb72">TrueT</a>(); <a name="l00775"></a>00775 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(a); <a name="l00776"></a>00776 <a class="code" href="namespaceitk_1_1Concept_1_1Detail.html#df60b674b6bd04c3b29b4e26feec6e29">Detail::IgnoreUnusedVariable</a>(b); <a name="l00777"></a>00777 } <a name="l00778"></a>00778 }; <a name="l00780"></a>00780 <a name="l00781"></a>00781 <a class="code" href="structitk_1_1Concept_1_1IsFixedPoint.html#e23ee826122bd211d7258761d23307d4">itkConceptConstraintsMacro</a>(); <a name="l00782"></a>00782 }; <a name="l00783"></a>00783 <a name="l00784"></a>00784 } <span class="comment">// end namespace Concept</span> <a name="l00785"></a>00785 <a name="l00786"></a>00786 } <span class="comment">// end namespace itk</span> <a name="l00787"></a>00787 <a name="l00788"></a>00788 <span class="preprocessor">#endif</span> <a name="l00789"></a>00789 <span class="preprocessor"></span> </pre></div></div> <hr><address><small> Generated at Thu May 7 22:26:31 2009 for ITK by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53> </a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>