Revisiting naming conventions

Miller, James V (CRD) millerjv at crd.ge.com
Mon Apr 17 14:38:56 EDT 2000


At the January meeting, we decided on a coding style where class names were prefixed with itk and
used word capitalization, i.e. our classes are named itkImage, itkImageBase, etc.

To support smart pointers, each class has an internal typedef named "Pointer".  So to declare a
smartpointer to an itkImage you would use itkImage::Pointer.

To support generic programming and the user of iterators, the image class has typedefs
itkImage::Iterator, itkImage::Index and itkImage::PixelType.

We are using two external "packages", STL and a numerics package, that use a different nomenclature.
These packages use lower case class names and underscores.  For instance, the stl vector class has a
typedef vector::interator and vector::value_type and vector::reference_type and vector::pointer.

Therefore, itk's public interface uses one naming convention; however, under the hood, we reference
systems that have a very different naming convention. 

Should we consider adopting the naming conventions of STL and the numerics package for consistency
sake?

There are two arguments on the table.

1. Using our original planned naming convention, it will be very clear what is itk code and what is
STL/numerics code.

2. Using a consistent naming convention will allow people who already know STL to get up to speed on
itk quickly (and they will not have to remap STL/itk bindings).

If we adopt STL conventions, how far should we take it? i.e. should our classnames take the form of
itk_image instead of itkImage?

We have a small enough code base now, that we can change our conventions easily.  If we wait too much
longer, it will become VERY painful to switch.

What are people's opinions on adopting the STL naming convention (which is part of the ANSI
standard).

Jim Miller
_____________________________________
Computer Graphics & Systems Program
GE Corporate Research & Development
Bldg. KW, Room C218B
P.O. Box 8, Schenectady NY 12301

millerjv at crd.ge.com <mailto:millerjv at crd.ge.com> 
(518) 387-4005, Dial Comm: 8*833-4005, 
Cell: (518) 505-7065, Fax: (518) 387-6981

 <<James Miller (E-mail).vcf>> 

begin 600 James Miller (E-mail).vcf
M0D5'24XZ5D-!4D0-"E9%4E-)3TXZ,BXQ#0I..DUI;&QE<CM*86UE<PT*1DXZ
M2F%M97, at 36EL;&5R("A%+6UA:6PI#0I/4D<Z1T4 at 0V]R<&]R871E(%(F1#M%
M4TP-"E1%3#M73U)+.U9/24-%.B at U,3 at I(#,X-RTT,#`U#0I414P[5T]22SM6
M3TE#13HJ.#,S+30P,#4-"E1%3#M73U)+.T9!6#HH-3$X*2`S.#<M-CDX,0T*
M0412.U=/4DL[14Y#3T1)3D<]455/5$5$+5!224Y404),13H[0V]M<'5T97(@
M1W)A<&AI8W,@)B!3>7-T96US(%!R;V=R86T[0DQ$1R!+5RP at 4DT@0S(Q.$(]
M,$0],$%03R!";W@@.#M38VAE;F5C/0T*=&%D>3M.63LQ,C,P,3M5;FET960@
M4W1A=&5S(&]F($%M97)I8V$-"DQ!0D5,.U=/4DL[14Y#3T1)3D<]455/5$5$
M+5!224Y404),13I#;VUP=71E<B!'<F%P:&EC<R`F(%-Y<W1E;7, at 4')O9W)A
M;3TP1#TP04),1$<@2U<L(%)-($,R,3A"/3!$/3!!4$\@0F]X(#@],$0]#0H]
M,$%38VAE;F5C=&%D>2P at 3ED@,3(S,#$],$0],$%5;FET960 at 4W1A=&5S(&]F
M($%M97)I8V$-"D5-04E,.U!2148[24Y415).150Z;6EL;&5R:G9`8W)D+F=E
G+F-O;0T*4D56.C(P,#`P,3(X5#$V,C8U-EH-"D5.1#I60T%21`T*
`
end



More information about the Insight-developers mailing list