@@ -1580,6 +1580,9 @@ \section{The auto Keyword}
1580
1580
\section {Initialization and Assignment }
1581
1581
\label {sec:IniitalizationAndAssignment }
1582
1582
1583
+ \subsection {Initialization of member variables }
1584
+ \label {subsec:InitializationOfMemberVariables }
1585
+
1583
1586
All member variables must be initialized when they are declared. For such
1584
1587
purpose, brace initializers, e.g.
1585
1588
@@ -1654,6 +1657,54 @@ \section{Initialization and Assignment}
1654
1657
example \code {FixedArray::m\_ InternalArray} and \code {Index::m\_ InternalArray}
1655
1658
do not have a default member initializer.
1656
1659
1660
+ \subsection {Initializing variables of fixed size array types }
1661
+ \label {subsec:InitializingVariablesOfFixedSizeArrayTypes }
1662
+
1663
+ ITK has various fixed size array types, including template instantiations of
1664
+ \code {Index}, \code {Size}, \code {FixedArray}, \code {Point}, and \code {Vector}.
1665
+
1666
+ A variable of such a fixed size array type can be zero-initialized by an empty
1667
+ initializer list, `{}`. This is usually the preferred way to initialize the
1668
+ variable, when it should initially be filled with zeroes. For example:
1669
+
1670
+ \small
1671
+ \begin {minted }[baselinestretch=1,fontsize=\footnotesize ,linenos=false,bgcolor=ltgray]{cpp}
1672
+ // Declare an index at position (0, 0).
1673
+ Index<2> index{};
1674
+
1675
+ // Declare a point whose coordinates are all 0.0 (the origin).
1676
+ PointType origin{};
1677
+ \end {minted }
1678
+ \normalsize
1679
+
1680
+ \code {Index} and \code {Size} both have a static `Filled(fillValue)` member
1681
+ function, to allow creating a variable that is filled with an arbitrary value.
1682
+ For these types, this is usually the preferred way to initialize the variable,
1683
+ when it should initially be filled with a value that may be non-zero. For
1684
+ example:
1685
+
1686
+ \small
1687
+ \begin {minted }[baselinestretch=1,fontsize=\footnotesize ,linenos=false,bgcolor=ltgray]{cpp}
1688
+ // Declare the index {1, 1, 1}.
1689
+ auto index = Index<3>::Filled(1);
1690
+
1691
+ // Declare the size of an 256 x 256 image.
1692
+ auto imageSize = Size<2>::Filled(256);
1693
+ \end {minted }
1694
+ \normalsize
1695
+
1696
+ For other fixed size array types, the function `itk::MakeFilled<T>(fillValue)`
1697
+ is preferable, when the array should initially be filled with a value that may
1698
+ be non-zero. For example:
1699
+
1700
+ \small
1701
+ \begin {minted }[baselinestretch=1,fontsize=\footnotesize ,linenos=false,bgcolor=ltgray]{cpp}
1702
+ // Declare a spacing filled with the value 0.5 (for each direction).
1703
+ // SpacingType is typically defined as Vector<double, Dimension>.
1704
+ auto spacing = MakeFilled<SpacingType>(0.5);
1705
+ \end {minted }
1706
+ \normalsize
1707
+
1657
1708
\section {Accessing Members }
1658
1709
\label {sec:Accessing Members }
1659
1710
0 commit comments