[ITK-dev] Problems with Change in itkStaticConstMacro
Bradly Lowekamp
blowekamp at mail.nih.gov
Wed Jan 20 10:00:19 EST 2016
Hello Luc,
Thanks for looking into this.
This bug is related to the older GCC 4.1 compiler that is found standard with Redhat 5 and Fedora 5 and used for distributions such as Anaconda’s Python. I apologize for the incorrect version before.
Here is some ITK code to reproduce the error:
http://review.source.kitware.com/#/c/20674/
Thank you for exploring a minimal test case. Your code does compile and run OK with GCC 4.1.
As a work around for SimpleITK I have disabled the SimpleITK Explicit library for now [1], this is not an optimal solution, and we should try to get explicit instantiation working again with GCC 4.1
Brad
https://github.com/SimpleITK/SimpleITK/compare/next#diff-af3b638bc2a3e6c650974192a53c7291
> On Jan 20, 2016, at 4:39 AM, Luc Hermitte <luc.hermitte at c-s.fr> wrote:
>
> Le 20/01/2016 09:57, Luc Hermitte a écrit :
>> Hello,
>>
>> Le 19/01/2016 21:19, Bradley Lowekamp a écrit :
>>> Hello,
>>>
>>> My release builds for SimpleITK are having significant problems with the
>>> change done here [1] to the itkStaticConstMacro.
>>>
>>> My builds on Redhat 5, with gcc 5.1, are filling my disk with errors
>>> along the following:
>>> [...]
>> [...]
>
>>> I’ll look into alternatives...
>>
>> Can you isolate the error on a simple test case that reproduce the issue?
>
> I've tried the file attached on https://ideone.com/SGlJ1i but it seems
> valid with GCC 5.1.
>
> However, in C++11, constexpr is required. And my g++ 4.8.2, and clang++
> as well, tell me:
>
> || g++ -std=c++03 -Werror -Wall -pedantic extern-templ.cpp -o
> extern-templ
> extern-templ.cpp|19 col 24| error: ISO C++ 1998 forbids the use of
> 'extern' on explicit instantiations [-Werror=pedantic]
> || extern template struct Bar<Foo<int>, Foo<double> >;
>
>
> What differs in SimpleITK source code?
>
>
> --Luc
> <extern-templ.cpp>
More information about the Insight-developers
mailing list