[vtkusers] Const get macros?
David Doria
daviddoria+vtk at gmail.com
Sat Aug 15 08:52:14 EDT 2009
On Fri, Aug 14, 2009 at 11:38 PM, Bill Lorensen <bill.lorensen at gmail.com>wrote:
> David,
>
> Be aware that adding a const version of the get macro may affect
> wrapping. I believe that vtkParse.l handles vtkGetMacro, but there is
> not provision to handle a GetConstMacro.
>
> Bill
>
In /..../itk/src/Code/Common/itkMacro.h there is simply
#define itkGetConstMacro(name,type) \
virtual type Get##name () const \
{ \
itkDebugMacro("returning " << #name " of " << this->m_##name ); \
return this->m_##name; \
}
To make the const macro, this could just be changed to:
#define vtkGetConstMacro(name,type) \
virtual type Get##name () const { \
vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning "
<< #name " of " << this->m_name ); \
return this->m_name; \
}
(copied from /..../vtk/src/Common/vtkSetGet.h ) which was:
#define vtkGetMacro(name,type) \
virtual type Get##name () { \
vtkDebugMacro(<< this->GetClassName() << " (" << this << "): returning "
<< #name " of " << this->name ); \
return this->name; \
}
@Bill, I have no idea about wrapping - so if someone sees a problem can you
please take a look? Was there a reason that this const get method was omited
in the first place?
Object macros :
I am a bit confused about the ObjectMacros. In vtkSetGet.h, it says
vtkSetObjectMacro should be used in the h file and vtkCxxSetObjectMacro
should be used in the cxx file. But the comment for vtkCxxSetObjectMacro
says you have to actually put
virtual void Set"name"("type" *);
in the header file... so then what would be the use of vtkSetObjectMacro?
and why is there no vtkCxxGetObjectMacro?
Thanks,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090815/6ca35c71/attachment.htm>
More information about the vtkusers
mailing list