[ITK] [ITK-dev] itkStaticConstMacro definition

Luc Hermitte luc.hermitte at c-s.fr
Mon Oct 5 10:26:38 EDT 2015


Hi list,

I'm currently trying to push code that exploits SFINAE and itk::EnableIf.

I have a problem with clang, in C++98 mode, as it barks when we are
using an unnamed type as a template parameter
-> "note: unnamed type used in template argument was declared here"

There is an easy fix for it: drop the compatibility to old compilers
like VC++6 when writing metaprograms. In this case, itkStaticConstMAcro
shall not generate an enum,
  enum { variable = value };  // (1)
but
  const static type variable = value; // (2)

I've searched google and gerrit to see why definition (2) has been
commented out, but I've found nothing. If I understand correctly, in the
past, a CMake test was used to choose how the macro shall be written.
This is not the case any more.

So my questions:
Does anybody remember/know why definition (2) has been dropped? Can't we
revert to it (or at least to a conditional definition of
itkStaticConstMacro) for compilers clang that are pedantically compliant
to C++98 standard?
(constexpr will of course be required with C++11 compliant compilers
used in C++11 (or more) mode)


BTW, which is the oldest VC++ compiler officially supported by ITK? Must
I understand from this that VC++7.1 support has already been dropped
since 2012?
(http://www.itk.org/Wiki/ITK_Release_4/Modern_C%2B%2B#Fully_Committed_to_Support)

Regards,
-- 
Luc Hermitte
CS SI
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-developers


More information about the Community mailing list