diff --git a/docsrc/installation.dxx b/docsrc/installation.dxx
index 97adae652..2e26b6390 100755
--- a/docsrc/installation.dxx
+++ b/docsrc/installation.dxx
@@ -32,6 +32,8 @@
> make examples # build examples (optional, Linux/Unix and MinGW only)
\endcode
+ When you use gcc 4.8.1, make sure to change the optimization level to -O2 in the cmake configuration (this is best done in the cmake GUI that you get by calling ccmake . before invoking make). The -O3 level in that compiler is buggy and leads to crashes.
+
If you use Microsoft Visual C++, you just execute cmake (not make) or cmake-gui with the appropriate generator which creates a solution file '<vigra_build_path>/vigra.sln'. This file must be opened in Visual Studio, and the projects 'ALL_BUILD', 'check', 'doc', 'INSTALL', and 'examples' should be generated. Important note: If you include "windows.h" in your projects: there are some name clashes with VIGRA -- always include "vigra/windows.h" instead.
cmake [options] customize installation directories and guide cmake in its search for the VIGRA dependencies. On a Linux system, it is often possible to configure without any options. The most commonly used options are:
diff --git a/include/vigra/colorconversions.hxx b/include/vigra/colorconversions.hxx
index 558feb537..0fd77395c 100644
--- a/include/vigra/colorconversions.hxx
+++ b/include/vigra/colorconversions.hxx
@@ -76,7 +76,7 @@ inline ValueType sRGBCorrection(double value, double norm)
value /= norm;
typedef typename NumericTraits::RealPromote Promote;
return NumericTraits::fromRealPromote(
- RequiresExplicitCast::cast(
+ RequiresExplicitCast::cast(
(value <= 0.0031308)
? norm*12.92*value
: norm*(1.055*std::pow(value, 0.41666666666666667) - 0.055)));
@@ -88,7 +88,7 @@ inline ValueType inverse_sRGBCorrection(double value, double norm)
value /= norm;
typedef typename NumericTraits::RealPromote Promote;
return NumericTraits::fromRealPromote(
- RequiresExplicitCast::cast(
+ RequiresExplicitCast::cast(
(value <= 0.04045)
? norm*value / 12.92
: norm*VIGRA_CSTD::pow((value + 0.055)/1.055, 2.4)));
diff --git a/include/vigra/impex.hxx b/include/vigra/impex.hxx
index 6e8437ae2..00c5eb2c0 100644
--- a/include/vigra/impex.hxx
+++ b/include/vigra/impex.hxx
@@ -284,7 +284,6 @@ namespace vigra
const ImageScaler& image_scaler)
{
typedef typename ImageIterator::row_iterator ImageRowIterator;
- typedef typename ImageAccessor::value_type ImageValueType;
typedef RequiresExplicitCast explicit_cast;
diff --git a/include/vigra/impexalpha.hxx b/include/vigra/impexalpha.hxx
index 37e8992fb..0426d676a 100644
--- a/include/vigra/impexalpha.hxx
+++ b/include/vigra/impexalpha.hxx
@@ -479,10 +479,7 @@ namespace vigra
const AlphaScaler& alpha_scaler)
{
typedef typename ImageIterator::row_iterator ImageRowIterator;
- typedef typename ImageAccessor::value_type ImageValueType;
-
typedef typename AlphaIterator::row_iterator AlphaRowIterator;
- typedef typename AlphaAccessor::value_type AlphaValueType;
typedef detail::RequiresExplicitCast explicit_cast;
diff --git a/include/vigra/labelvolume.hxx b/include/vigra/labelvolume.hxx
index 520cedfa0..abf73961c 100644
--- a/include/vigra/labelvolume.hxx
+++ b/include/vigra/labelvolume.hxx
@@ -271,7 +271,7 @@ unsigned int labelVolume(SrcIterator s_Iter, SrcShape srcShape, SrcAccessor sa,
int j=0;
while(nc.direction() != Neighborhood3D::Error)
{
- /*
+
SrcShape s(x,y,z), sn = s + *nc;
if (sn[0]<0 || sn[0]>=w || sn[1]<0 || sn[1]>=h || sn[2]<0 || sn[2]>=d)
@@ -280,7 +280,7 @@ unsigned int labelVolume(SrcIterator s_Iter, SrcShape srcShape, SrcAccessor sa,
atBorder << std::endl;
}
- */
+
// colors equal???
if(equal(sa(xs), sa(xs, *nc)))
{
@@ -617,6 +617,14 @@ unsigned int labelVolumeWithBackground(SrcIterator s_Iter, SrcShape srcShape, Sr
int j=0;
while(nc.direction() != Neighborhood3D::Error)
{
+ SrcShape s(x,y,z), sn = s + *nc;
+
+ if (sn[0]<0 || sn[0]>=w || sn[1]<0 || sn[1]>=h || sn[2]<0 || sn[2]>=d)
+ {
+ std::cerr << "coordinate error at " << s << ", offset " << *nc << ", index " << (nc).direction() << " at border " <<
+ atBorder << std::endl;
+
+ }
// colors equal???
if(equal(sa(xs), sa(xs, *nc)))
{
diff --git a/include/vigra/linear_solve.hxx b/include/vigra/linear_solve.hxx
index 8f4998e90..f6dd258a4 100644
--- a/include/vigra/linear_solve.hxx
+++ b/include/vigra/linear_solve.hxx
@@ -1014,7 +1014,6 @@ template
bool linearSolveUpperTriangular(const MultiArrayView<2, T, C1> &r, const MultiArrayView<2, T, C2> &b,
MultiArrayView<2, T, C3> x)
{
- typedef MultiArrayShape<2>::type Shape;
MultiArrayIndex m = rowCount(r);
MultiArrayIndex rhsCount = columnCount(b);
vigra_precondition(m == columnCount(r),
@@ -1197,9 +1196,6 @@ bool linearSolve(MultiArrayView<2, T, C1> const & A,
MultiArrayView<2, T, C3> res,
std::string method = "QR")
{
- typedef typename Matrix::difference_type Shape;
- typedef typename Matrix::view_type SubMatrix;
-
const MultiArrayIndex n = columnCount(A);
const MultiArrayIndex m = rowCount(A);
diff --git a/include/vigra/localminmax.hxx b/include/vigra/localminmax.hxx
index ffde82083..f8515a8a1 100644
--- a/include/vigra/localminmax.hxx
+++ b/include/vigra/localminmax.hxx
@@ -1530,8 +1530,6 @@ extendedLocalMinima(SrcIterator sul, SrcIterator slr, SrcAccessor sa,
DestIterator dul, DestAccessor da,
typename DestAccessor::value_type marker)
{
- typedef typename SrcAccessor::value_type SrcType;
-
extendedLocalMinima(sul, slr, sa, dul, da,
marker, EightNeighborCode());
}
@@ -1880,8 +1878,6 @@ extendedLocalMaxima(SrcIterator sul, SrcIterator slr, SrcAccessor sa,
DestIterator dul, DestAccessor da,
typename DestAccessor::value_type marker)
{
- typedef typename SrcAccessor::value_type SrcType;
-
extendedLocalMaxima(sul, slr, sa, dul, da,
marker, EightNeighborCode());
}
diff --git a/include/vigra/multi_convolution.hxx b/include/vigra/multi_convolution.hxx
index 1b44b795a..4033b5432 100644
--- a/include/vigra/multi_convolution.hxx
+++ b/include/vigra/multi_convolution.hxx
@@ -597,7 +597,6 @@ internalSeparableConvolveSubarray(
typedef MultiArrayNavigator SNavigator;
typedef MultiArrayNavigator TNavigator;
- typedef MultiArrayNavigator DNavigator;
TmpAcessor acc;
@@ -1253,8 +1252,6 @@ gaussianSmoothMultiArray( SrcIterator s, SrcShape const & shape, SrcAccessor src
const ConvolutionOptions & opt,
const char *const function_name = "gaussianSmoothMultiArray" )
{
- typedef typename DestAccessor::value_type DestType;
-
static const int N = SrcShape::static_size;
typename ConvolutionOptions::ScaleIterator params = opt.scaleParams();
@@ -2142,7 +2139,6 @@ gaussianDivergenceMultiArray(Iterator vectorField, Iterator vectorFieldEnd,
MultiArrayView divergence,
ConvolutionOptions opt)
{
- typedef typename MultiArrayShape::type Shape;
typedef typename std::iterator_traits::value_type ArrayType;
typedef typename ArrayType::value_type SrcType;
typedef typename NumericTraits::RealPromote TmpType;
diff --git a/include/vigra/multi_localminmax.hxx b/include/vigra/multi_localminmax.hxx
index e49660810..eddbab0ae 100644
--- a/include/vigra/multi_localminmax.hxx
+++ b/include/vigra/multi_localminmax.hxx
@@ -211,7 +211,7 @@ localMinMax(MultiArrayView const & src,
vigra_precondition(src.shape() == dest.shape(),
"localMinMax(): shape mismatch between input and output.");
- NeighborhoodType neighborhood;
+ NeighborhoodType neighborhood = DirectNeighborhood;
if(options.neigh == 0 || options.neigh == 2*N)
neighborhood = DirectNeighborhood;
diff --git a/include/vigra/multi_morphology.hxx b/include/vigra/multi_morphology.hxx
index 151c2bb25..1ca747f40 100644
--- a/include/vigra/multi_morphology.hxx
+++ b/include/vigra/multi_morphology.hxx
@@ -479,9 +479,6 @@ multiGrayscaleErosion( SrcIterator s, SrcShape const & shape, SrcAccessor src,
// temporary array to hold the current line to enable in-place operation
ArrayVector tmp( shape[0] );
- typedef MultiArrayNavigator SNavigator;
- typedef MultiArrayNavigator DNavigator;
-
int MaxDim = 0;
for( int i=0; i tmp( shape[0] );
-
- typedef MultiArrayNavigator SNavigator;
- typedef MultiArrayNavigator DNavigator;
int MaxDim = 0;
for( int i=0; i::RealPromote TmpType;
- typedef MultiArray TmpArray;
typedef typename AccessorTraits::default_accessor TmpAccessor;
if(N==1)
diff --git a/include/vigra/multi_watersheds.hxx b/include/vigra/multi_watersheds.hxx
index 05449d929..5e1d24c54 100644
--- a/include/vigra/multi_watersheds.hxx
+++ b/include/vigra/multi_watersheds.hxx
@@ -89,10 +89,8 @@ unionFindWatersheds(Graph const & g,
T2Map const & lowestNeighborIndex,
T3Map & labels)
{
- typedef typename Graph::Node Node;
typedef typename Graph::NodeIt graph_scanner;
typedef typename Graph::OutBackArcIt neighbor_iterator;
- typedef typename T1Map::value_type DataType;
typedef typename T3Map::value_type LabelType;
vigra::detail::UnionFindArray regions;
@@ -288,8 +286,6 @@ watershedsGraph(Graph const & g,
T2Map & labels,
WatershedOptions const & options)
{
- typedef typename T2Map::value_type LabelType;
-
if(options.method == WatershedOptions::UnionFind)
{
vigra_precondition(g.maxDegree() <= NumericTraits::max(),
diff --git a/include/vigra/noise_normalization.hxx b/include/vigra/noise_normalization.hxx
index 94aefdf42..56a67f647 100644
--- a/include/vigra/noise_normalization.hxx
+++ b/include/vigra/noise_normalization.hxx
@@ -548,9 +548,6 @@ findHomogeneousRegionsFoerstner(
int w = slr.x - sul.x;
int h = slr.y - sul.y;
- typedef typename NumericTraits::RealPromote TmpType;
- typedef BasicImage TmpImage;
-
BImage btmp(w, h);
transformImage(srcIterRange(sul, slr, src), destImage(btmp),
ifThenElse(Arg1() <= Param(homogeneityThreshold), Param(1), Param(0)));
@@ -1067,7 +1064,6 @@ void noiseVarianceEstimation(SrcIterator sul, SrcIterator slr, SrcAccessor src,
BackInsertable & result,
NoiseNormalizationOptions const & options = NoiseNormalizationOptions())
{
- typedef typename BackInsertable::value_type ResultType;
typedef typename SrcAccessor::value_type SrcType;
typedef typename NumericTraits::isScalar isScalar;
diff --git a/include/vigra/nonlineardiffusion.hxx b/include/vigra/nonlineardiffusion.hxx
index dd4279a52..1f3e5cb40 100644
--- a/include/vigra/nonlineardiffusion.hxx
+++ b/include/vigra/nonlineardiffusion.hxx
@@ -88,10 +88,6 @@ void internalNonlinearDiffusionAOSStep(
DestIterator dul, DestAccessor ad, double timestep)
{
// use traits to determine SumType as to prevent possible overflow
- typedef typename
- NumericTraits::RealPromote
- DestType;
-
typedef typename
NumericTraits::RealPromote
WeightType;
diff --git a/include/vigra/numpy_array.hxx b/include/vigra/numpy_array.hxx
index c4ace17f1..d8264bc8f 100644
--- a/include/vigra/numpy_array.hxx
+++ b/include/vigra/numpy_array.hxx
@@ -1198,7 +1198,6 @@ destImageRange(NumpyArray<3, Multiband, Stride> & img)
{
StridedImageIterator
ul(img.data(), 1, img.stride(0), img.stride(1));
- typedef typename AccessorTraits::default_accessor Accessor;
return triple,
StridedImageIterator,
MultibandVectorAccessor >
@@ -1224,7 +1223,6 @@ maskImage(NumpyArray<3, Multiband, Stride> const & img)
{
ConstStridedImageIterator
ul(img.data(), 1, img.stride(0), img.stride(1));
- typedef typename AccessorTraits::default_accessor Accessor;
return pair, MultibandVectorAccessor >
(ul, MultibandVectorAccessor(img.shape(2), img.stride(2)));
}
diff --git a/include/vigra/polynomial.hxx b/include/vigra/polynomial.hxx
index 8545a54ff..4ee096465 100644
--- a/include/vigra/polynomial.hxx
+++ b/include/vigra/polynomial.hxx
@@ -938,7 +938,6 @@ struct PolynomialRootCompare
template
bool polynomialRoots(POLYNOMIAL const & poriginal, VECTOR & roots, bool polishRoots)
{
- typedef typename POLYNOMIAL::value_type T;
typedef typename POLYNOMIAL::Real Real;
typedef typename POLYNOMIAL::Complex Complex;
typedef typename POLYNOMIAL::ComplexPolynomial WorkPolynomial;
diff --git a/include/vigra/random_forest/rf_algorithm.hxx b/include/vigra/random_forest/rf_algorithm.hxx
index 109254215..fba236a01 100644
--- a/include/vigra/random_forest/rf_algorithm.hxx
+++ b/include/vigra/random_forest/rf_algorithm.hxx
@@ -734,7 +734,6 @@ public:
{
MultiArray<2, T> dist(distance);
std::vector > addr;
- typedef std::pair Entry;
int index = 0;
for(int ii = 0; ii < distance.shape(0); ++ii)
{
diff --git a/include/vigra/random_forest/rf_common.hxx b/include/vigra/random_forest/rf_common.hxx
index 5feb7c26d..a82b1f5ee 100755
--- a/include/vigra/random_forest/rf_common.hxx
+++ b/include/vigra/random_forest/rf_common.hxx
@@ -292,7 +292,6 @@ class RandomForestOptions
void make_from_map(map_type & in) // -> const: .operator[] -> .find
{
- typedef MultiArrayShape<2>::type Shp;
#define PULL(item_, type_) item_ = type_(in[#item_][0]);
#define PULLBOOL(item_, type_) item_ = type_(in[#item_][0] > 0);
PULL(training_set_proportion_,double);
@@ -317,7 +316,6 @@ class RandomForestOptions
}
void make_map(map_type & in) const
{
- typedef MultiArrayShape<2>::type Shp;
#define PUSH(item_, type_) in[#item_] = double_array(1, double(item_));
#define PUSHFUNC(item_, type_) in[#item_] = double_array(1, double(item_!=0));
PUSH(training_set_proportion_,double);
@@ -764,7 +762,6 @@ public:
void make_from_map(map_type & in) // -> const: .operator[] -> .find
{
- typedef MultiArrayShape<2>::type Shp;
#define PULL(item_, type_) item_ = type_(in[#item_][0]);
PULL(column_count_,int);
PULL(class_count_, int);
@@ -781,7 +778,6 @@ public:
}
void make_map(map_type & in) const
{
- typedef MultiArrayShape<2>::type Shp;
#define PUSH(item_) in[#item_] = double_array(1, double(item_));
PUSH(column_count_);
PUSH(class_count_)
diff --git a/include/vigra/random_forest/rf_ridge_split.hxx b/include/vigra/random_forest/rf_ridge_split.hxx
index e57662d4e..bb65ddd02 100644
--- a/include/vigra/random_forest/rf_ridge_split.hxx
+++ b/include/vigra/random_forest/rf_ridge_split.hxx
@@ -135,7 +135,6 @@ class RidgeSplit: public SplitBase
{
//std::cerr << "Split called" << std::endl;
- typedef typename Region::IndexIterator IndexIterator;
typedef typename MultiArrayView <2, T, C>::difference_type fShape;
typedef typename MultiArrayView <2, T2, C2>::difference_type lShape;
typedef typename MultiArrayView <2, double>::difference_type dShape;
diff --git a/include/vigra/recursiveconvolution.hxx b/include/vigra/recursiveconvolution.hxx
index 03bfefba6..87056310b 100644
--- a/include/vigra/recursiveconvolution.hxx
+++ b/include/vigra/recursiveconvolution.hxx
@@ -316,7 +316,6 @@ void recursiveFilterLine(SrcIterator is, SrcIterator isend, SrcAccessor as,
typedef typename
NumericTraits::RealPromote TempType;
- typedef NumericTraits DestTraits;
// speichert den Ergebnis der linkseitigen Filterung.
std::vector vline(w+1);
@@ -469,7 +468,6 @@ recursiveGaussianFilterLine(SrcIterator is, SrcIterator isend, SrcAccessor as,
typedef typename
NumericTraits::RealPromote TempType;
- typedef NumericTraits DestTraits;
// speichert das Ergebnis der linkseitigen Filterung.
std::vector yforward(w);
diff --git a/include/vigra/regression.hxx b/include/vigra/regression.hxx
index 57892b0bc..c10c80e28 100644
--- a/include/vigra/regression.hxx
+++ b/include/vigra/regression.hxx
@@ -124,8 +124,6 @@ weightedLeastSquares(MultiArrayView<2, T, C1> const & A,
MultiArrayView<2, T, C2> const &b, MultiArrayView<2, T, C3> const &weights,
MultiArrayView<2, T, C4> &x, std::string method = "QR")
{
- typedef T Real;
-
const unsigned int rows = rowCount(A);
const unsigned int cols = columnCount(A);
const unsigned int rhsCount = columnCount(b);
@@ -183,8 +181,6 @@ bool
ridgeRegression(MultiArrayView<2, T, C1> const & A,
MultiArrayView<2, T, C2> const &b, MultiArrayView<2, T, C3> &x, double lambda)
{
- typedef T Real;
-
const unsigned int rows = rowCount(A);
const unsigned int cols = columnCount(A);
const unsigned int rhsCount = columnCount(b);
@@ -257,8 +253,6 @@ weightedRidgeRegression(MultiArrayView<2, T, C1> const & A,
MultiArrayView<2, T, C2> const &b, MultiArrayView<2, T, C3> const &weights,
MultiArrayView<2, T, C4> &x, double lambda)
{
- typedef T Real;
-
const unsigned int rows = rowCount(A);
const unsigned int cols = columnCount(A);
const unsigned int rhsCount = columnCount(b);
@@ -310,8 +304,6 @@ bool
ridgeRegressionSeries(MultiArrayView<2, T, C1> const & A,
MultiArrayView<2, T, C2> const &b, MultiArrayView<2, T, C3> &x, Array const & lambda)
{
- typedef T Real;
-
const unsigned int rows = rowCount(A);
const unsigned int cols = columnCount(A);
const unsigned int lambdaCount = lambda.size();
diff --git a/include/vigra/separableconvolution.hxx b/include/vigra/separableconvolution.hxx
index 6f52a5961..3ae5781d1 100644
--- a/include/vigra/separableconvolution.hxx
+++ b/include/vigra/separableconvolution.hxx
@@ -902,8 +902,6 @@ void convolveLine(SrcIterator is, SrcIterator iend, SrcAccessor sa,
int kleft, int kright, BorderTreatmentMode border,
int start = 0, int stop = 0)
{
- typedef typename KernelAccessor::value_type KernelValue;
-
vigra_precondition(kleft <= 0,
"convolveLine(): kleft must be <= 0.\n");
vigra_precondition(kright >= 0,
@@ -1093,8 +1091,6 @@ void separableConvolveX(SrcIterator supperleft,
KernelIterator ik, KernelAccessor ka,
int kleft, int kright, BorderTreatmentMode border)
{
- typedef typename KernelAccessor::value_type KernelValue;
-
vigra_precondition(kleft <= 0,
"separableConvolveX(): kleft must be <= 0.\n");
vigra_precondition(kright >= 0,
@@ -1250,8 +1246,6 @@ void separableConvolveY(SrcIterator supperleft,
KernelIterator ik, KernelAccessor ka,
int kleft, int kright, BorderTreatmentMode border)
{
- typedef typename KernelAccessor::value_type KernelValue;
-
vigra_precondition(kleft <= 0,
"separableConvolveY(): kleft must be <= 0.\n");
vigra_precondition(kright >= 0,
diff --git a/include/vigra/singular_value_decomposition.hxx b/include/vigra/singular_value_decomposition.hxx
index 66bbfe64a..86ddff374 100644
--- a/include/vigra/singular_value_decomposition.hxx
+++ b/include/vigra/singular_value_decomposition.hxx
@@ -76,7 +76,6 @@ singularValueDecomposition(MultiArrayView<2, T, C1> const & A,
MultiArrayView<2, T, C2> &U, MultiArrayView<2, T, C3> &S, MultiArrayView<2, T, C4> &V)
{
typedef T Real;
- typedef MultiArrayShape<2>::type Shape;
const MultiArrayIndex rows = rowCount(A);
const MultiArrayIndex cols = columnCount(A);
diff --git a/src/impex/pnm.cxx b/src/impex/pnm.cxx
index 0dd349c64..9cf39d2ef 100644
--- a/src/impex/pnm.cxx
+++ b/src/impex/pnm.cxx
@@ -742,10 +742,7 @@ namespace vigra {
void PnmEncoderImpl::write_bilevel_raw()
{
// cast the bands to the correct type
- typedef void_vector< UInt8 > vector_type;
- //vector_type & cbands = static_cast< vector_type & >(bands);
-
- // XXX
+ vigra_fail("PNM write bilevel raw is not implemented, sorry.");
}
void PnmEncoderImpl::write_raw()
diff --git a/test/classifier/test.cxx b/test/classifier/test.cxx
index 2bb760f07..0212cd658 100644
--- a/test/classifier/test.cxx
+++ b/test/classifier/test.cxx
@@ -586,7 +586,6 @@ struct ClassifierTest
{
std::cerr << "RFoobTest(): Learning each Datasets 10 times\n";
- typedef MultiArrayShape<2>::type _TTT;
for(int ii = 0; ii MV;
ImageImportInfo info("ghouse.gif");
Shape2 s(info.width(), info.height());
DArray2 in(s), out(s), out2(s), out3(s), out4(s), ref(s), tmp(s);
diff --git a/test/multiarray/test.cxx b/test/multiarray/test.cxx
index e5a0490c2..eb18ec562 100644
--- a/test/multiarray/test.cxx
+++ b/test/multiarray/test.cxx
@@ -264,7 +264,6 @@ class MultiArrayDataTest
void testIsStrided()
{
// for MultiArray<3, Multiband >
- typedef difference3_type Shape;
should(!array3.isUnstrided());
should(array3.permuteStridesAscending().isUnstrided());
@@ -2908,7 +2907,6 @@ struct MultiArrayDataTestSuite
}
{
typedef Multiband T;
- typedef MultiArray<3, T> A;
add( testCase( &MultiArrayDataTest::testHasData ) );
add( testCase( &MultiArrayDataTest::testEquality ) );
add( testCase( &MultiArrayDataTest::test_subarray ) );
diff --git a/test/objectfeatures/test.cxx b/test/objectfeatures/test.cxx
index 13523b7d5..dad316b93 100644
--- a/test/objectfeatures/test.cxx
+++ b/test/objectfeatures/test.cxx
@@ -1260,7 +1260,6 @@ struct AccumulatorTest
{
typedef CoupledIteratorType<2, double, int>::type Iterator;
- typedef Iterator::value_type Handle;
typedef DynamicAccumulatorChainArray,
Select, GlobalRangeHistogram<3>,
diff --git a/vigranumpy/src/core/colors.cxx b/vigranumpy/src/core/colors.cxx
index aee0ffe4a..9541ab4c6 100644
--- a/vigranumpy/src/core/colors.cxx
+++ b/vigranumpy/src/core/colors.cxx
@@ -311,7 +311,6 @@ NumpyAnyArray pythonApplyColortable(const NumpyArray<2, Singleband >& valueIm
// Multiband: channel axis is allowed to be singleband, but does not have to be,
// will be last when converted Python -> C++ and channel axis is counted in the dimension ('3')
typedef NumpyArray<2, Singleband > InputType;
- typedef NumpyArray<3, Multiband > OutputType;
res.reshapeIfEmpty(valueImage.taggedShape().setChannelCount(colortable.shape(1)),
"pythonApplyColortable: shape of res is wrong");
diff --git a/vigranumpy/src/core/impex.cxx b/vigranumpy/src/core/impex.cxx
index 9f742e2b4..91db64799 100644
--- a/vigranumpy/src/core/impex.cxx
+++ b/vigranumpy/src/core/impex.cxx
@@ -207,8 +207,6 @@ template
NumpyAnyArray
readVolumeImpl(VolumeImportInfo const & info, std::string order = "")
{
- typedef UnstridedArrayTag Stride;
-
if(order == "")
order = detail::defaultOrder();
diff --git a/vigranumpy/src/core/segmentation.cxx b/vigranumpy/src/core/segmentation.cxx
index b122e8681..0fd1d38bc 100644
--- a/vigranumpy/src/core/segmentation.cxx
+++ b/vigranumpy/src/core/segmentation.cxx
@@ -956,7 +956,6 @@ pythonSlic(NumpyArray array,
{
typedef typename detail::ResolveMultiband::type ValueType;
typedef typename NormTraits::NormType TmpType;
- typedef typename NumpyArray::view_type View;
std::string description("Slic superpixels");