<div>I am trying to ensure the type that my function is instantiated with has a certainly property. I tried this:</div><div><br></div><div>#include &lt;itkConceptChecking.h&gt;</div><div>#include &lt;itkImage.h&gt;</div><div>
#include &lt;itkVectorImage.h&gt;</div><div><br></div><div>template &lt;typename T&gt;</div><div>void MyFunction(const T&amp; image)</div><div>{</div><div>  // MyFunction should only accept types that have an operator[]</div>
<div>  itkConceptMacro( nameOfCheck, ( itk::Concept::BracketOperator&lt; T&gt; ) ); // here, &#39;nameOfCheck can be anything, right?</div><div><br></div><div>}</div><div><br></div><div>int main(int, char*[])</div><div>{</div>
<div>  itk::VariableLengthVector&lt;float&gt; a;</div><div>  a[0] = 1;</div><div>  MyFunction(a);</div><div><br></div><div>  int b;</div><div>//   MyFunction(b);</div><div><br></div><div>  return EXIT_SUCCESS;</div><div>}</div>
<div><br></div><div>-----------</div><div><br></div><div>VariableLengthVector definitely has operator[], as shown with the assignment a[0] = 1. However, the call to MyFunction(a) produces compiler errors that say &quot;no match for operator[]&quot;. Can anyone explain what I&#39;m doing wrong here?</div>
<div><br></div>Thanks,<br><br>David<br>