Skip to content

Commit 066ddb8

Browse files
N-Dekkerdzenanz
authored andcommitted
COMP: Workaround VS2017 error C2653/C2886 using-declaration compiler bug
Partially reverted pull request #2567 commit 4f30980 "STYLE: Avoid repeating parent aliases" because of Visual Studio 2017 compile errors reported by Dženan Zukić at #2759 "COMP: making it compile on VS2017" Worked around the following VS2017 compile errors: > error C2653: '...': is not a class or namespace name > error C2886: '...': symbol cannot be used in a member using-declaration The compiler bug that caused these errors is reported here: "Compile error when using "using declaration" referencing a base class type that refers to itself" EssentiaX - Reported March 12, 2019 [Fixed in version 16.2] https://developercommunity.visualstudio.com/t/486683
1 parent 3be070c commit 066ddb8

File tree

54 files changed

+60
-61
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+60
-61
lines changed

Modules/Core/Common/include/itkCellInterface.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
#define itkCellInheritedTypedefs(superclassArg) \
5656
using Superclass = superclassArg; \
5757
using typename Superclass::PixelType; \
58-
using typename Superclass::CellType; \
58+
using CellType = typename Superclass::CellType; \
5959
using typename Superclass::CellAutoPointer; \
6060
using typename Superclass::CellConstAutoPointer; \
6161
using typename Superclass::CellRawPointer; \

Modules/Core/Common/include/itkContinuousIndex.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class ITK_TEMPLATE_EXPORT ContinuousIndex : public Point<TCoordRep, VIndexDimens
6565
using IndexType = Index<VIndexDimension>;
6666

6767
/** The Array type from which this Vector is derived. */
68-
using typename Superclass::BaseArray;
68+
using BaseArray = typename Superclass::BaseArray;
6969
using Iterator = typename BaseArray::Iterator;
7070
using ConstIterator = typename BaseArray::ConstIterator;
7171

Modules/Core/Common/include/itkOptimizerParameters.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class ITK_TEMPLATE_EXPORT OptimizerParameters : public Array<TParametersValueTyp
4141
using Self = OptimizerParameters;
4242
using Superclass = Array<TParametersValueType>;
4343
using ArrayType = Superclass;
44-
using typename Superclass::VnlVectorType;
44+
using VnlVectorType = typename Superclass::VnlVectorType;
4545
using typename Superclass::SizeValueType;
4646

4747
/** Helper class for managing different types of parameter

Modules/Core/QuadEdgeMesh/include/itkQuadEdgeMeshLineCell.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,12 @@ class ITK_TEMPLATE_EXPORT QuadEdgeMeshLineCell
5454
// itkCellInheritedTypedefs
5555
using Superclass = TCellInterface;
5656
using typename Superclass::PixelType;
57-
using typename Superclass::CellType;
57+
using CellType = typename Superclass::CellType;
5858
using typename Superclass::CellAutoPointer;
5959
using typename Superclass::CellConstAutoPointer;
6060
using typename Superclass::CellRawPointer;
6161
using typename Superclass::CellConstRawPointer;
62-
using typename Superclass::CellTraits;
62+
using CellTraits = typename Superclass::CellTraits;
6363
using typename Superclass::CoordRepType;
6464
using typename Superclass::InterpolationWeightType;
6565
using typename Superclass::PointIdentifier;

Modules/Core/QuadEdgeMesh/include/itkQuadEdgeMeshPoint.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ class ITK_TEMPLATE_EXPORT QuadEdgeMeshPoint : public Point<TCoordRep, VPointDime
4747
using typename Superclass::ValueType;
4848
using typename Superclass::CoordRepType;
4949
using typename Superclass::RealType;
50-
using typename Superclass::BaseArray;
5150
using typename Superclass::Iterator;
5251
using typename Superclass::ConstIterator;
5352
using typename Superclass::VectorType;

Modules/Core/QuadEdgeMesh/include/itkQuadEdgeMeshPolygonCell.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ class ITK_TEMPLATE_EXPORT QuadEdgeMeshPolygonCell : public TCellInterface
5252
// itkCellInheritedTypedefs
5353
using Superclass = TCellInterface;
5454
using typename Superclass::PixelType;
55-
using typename Superclass::CellType;
55+
using CellType = typename Superclass::CellType;
5656
using typename Superclass::CellAutoPointer;
5757
using typename Superclass::CellConstAutoPointer;
5858
using typename Superclass::CellRawPointer;
5959
using typename Superclass::CellConstRawPointer;
60-
using typename Superclass::CellTraits;
60+
using CellTraits = typename Superclass::CellTraits;
6161
using typename Superclass::CoordRepType;
6262
using typename Superclass::InterpolationWeightType;
6363
using typename Superclass::PointIdentifier;

Modules/Core/Transform/include/itkAffineTransform.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ class ITK_TEMPLATE_EXPORT AffineTransform
145145

146146
/** Base inverse transform type. This type should not be changed to the
147147
* concrete inverse transform type or inheritance would be lost.*/
148-
using typename Superclass::InverseTransformBaseType;
148+
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType;
149149
using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer;
150150

151151
/** Compose affine transformation with a translation

Modules/Core/Transform/include/itkCenteredAffineTransform.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class ITK_TEMPLATE_EXPORT CenteredAffineTransform : public AffineTransform<TPara
7878

7979
/** Base inverse transform type. This type should not be changed to the
8080
* concrete inverse transform type or inheritance would be lost. */
81-
using typename Superclass::InverseTransformBaseType;
81+
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType;
8282
using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer;
8383

8484
/** Set/Get the transformation from a container of parameters.

Modules/Core/Transform/include/itkCenteredEuler3DTransform.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class ITK_TEMPLATE_EXPORT CenteredEuler3DTransform : public Euler3DTransform<TPa
8383

8484
/** Base inverse transform type. This type should not be changed to the
8585
* concrete inverse transform type or inheritance would be lost. */
86-
using typename Superclass::InverseTransformBaseType;
86+
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType;
8787
using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer;
8888

8989
/** Set the transformation from a container of parameters

Modules/Core/Transform/include/itkCenteredRigid2DTransform.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ class ITK_TEMPLATE_EXPORT CenteredRigid2DTransform : public Rigid2DTransform<TPa
106106

107107
/** Base inverse transform type. This type should not be changed to the
108108
* concrete inverse transform type or inheritance would be lost. */
109-
using typename Superclass::InverseTransformBaseType;
109+
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType;
110110
using InverseTransformBasePointer = typename InverseTransformBaseType::Pointer;
111111

112112
/** Set the transformation from a container of parameters

0 commit comments

Comments
 (0)