|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0010633||ITK||public||2010-04-28 09:42||2011-06-17 12:53|
|Assigned To||Nick Tustison|
|Platform||Windows/x64||OS||Windows Vista x64||OS Version|
|Target Version||Fixed in Version|
|Summary||0010633: itk::NonUniformBSpline can not be instantiated|
|Description||I try to compile a very simple test program (see section "Steps To Reproduce") that basically defines a variable of type itk::NonUniformBSpline<3>.|
Visual Studio 2008 produces the following complier error:
v:\windows\source\itk318\code\common\itkNonUniformBSpline.h(83) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'const std::vector<_Ty>' (or there is no acceptable conversion)
[... <-- lot of output with possible types that do not match...]
The same code was working on ITK 3.16.
I suppose, the problem is, that this class is not used anywhere in ITK and that there is no unit test for the class, therefore changes to the class were never really compiled (e.g. bug 0010458).
|Steps To Reproduce||#include <itkNonUniformBSpline.h>|
int main(int /* argc */, char* /*argv*/)
typedef itk::NonUniformBSpline<3> SplineType;
|Tags||No tags attached.|
|Attached Files|| NonUniformBSpline.patch [^] (4,130 bytes) 2010-04-28 12:47 [Show Content]
itkNonUniformBSplineTest.cxx [^] (5,957 bytes) 2010-04-28 12:47
An important note: This compiler error only occurs in DEBUG mode!
Digging deeper, I found that the problem is the use of the
itkGetConstReferenceMacro() to return the non-ITK type PointListType which is a stl container:
typedef std::vector < PointType > PointListType;
the macro tries to pipe the vector into an output stream, which fails because there is no operator to pipe stl vectors:
itkDebugMacro("returning " << #name " of " << this->m_##name ); \
(this syntax is strange, I would expect either << before AND after #name or not at all, but this is not part of this bug report)
I also posted this to the mailing list and got a reply from Luis Ibanez:
Luis Ibanez (manager)
The patch has been committed to the CVS Head.
In includes a unit test for the NonUniformBSpline class.
The test still needs some work on verifying the correctness of its numerical outputs.
We will wait to see tomorrow's Dashboard.
If it is green we will commit the same patch to the ITK 3.18 branch.
Luis Ibanez (manager)
The class does compile now,
but its implementation is not completed.
This class should be removed from ITK,
or at least, be moved to a module in the periphery.
Nick Tustison (developer)
|This class is in ITK-deprecated. Doesn't this mean it's slated to be removed and/or we don't have to provide support? I agree with Luis in that I think this class should be removed. It's functionality and usability is rather limited.|
Hans Johnson (developer)
|This class has been deprecated.|
|2010-04-28 09:42||jneuhaus||New Issue|
|2010-04-28 10:13||jneuhaus||Note Added: 0020461|
|2010-04-28 11:48||jneuhaus||Note Added: 0020462|
|2010-04-28 12:26||Luis Ibanez||Status||new => assigned|
|2010-04-28 12:26||Luis Ibanez||Assigned To||=> Luis Ibanez|
|2010-04-28 12:47||Luis Ibanez||File Added: NonUniformBSpline.patch|
|2010-04-28 12:47||Luis Ibanez||File Added: itkNonUniformBSplineTest.cxx|
|2010-04-28 12:52||Luis Ibanez||Note Added: 0020464|
|2010-11-07 02:00||Luis Ibanez||Note Added: 0022994|
|2011-06-17 12:31||Hans Johnson||Assigned To||Luis Ibanez => Nick Tustison|
|2011-06-17 12:45||Nick Tustison||Note Added: 0026899|
|2011-06-17 12:53||Hans Johnson||Sprint Status||=> backlog|
|2011-06-17 12:53||Hans Johnson||Note Added: 0026901|
|2011-06-17 12:53||Hans Johnson||Status||assigned => closed|
|2011-06-17 12:53||Hans Johnson||Resolution||open => won't fix|
|Copyright © 2000 - 2018 MantisBT Team|