Kent,

Getting these details just right is going to be a pain.

Would you mind if I made a patch to replace usage of copy_n with std::copy and 
removed itkStdAlgorithm.h?

Brad

On Apr 25, 2013, at 9:12 AM, Bradley Lowekamp <[email protected]> wrote:

> Niels,
> 
> It would solve your problem. But.. why was it added? 
> 
> $ git log Modules/Core/Common/include/itkStdAlgorithm.h
> commit 137b5c35a733782cb443a19ef4901520e98bac98
> Author: Kent Williams <[email protected]>
> Date:   Wed Apr 17 09:57:37 2013 -0500
> 
>    COMP: Further changes to the use of std::copy_n
> 
>    1. Add preprocessor test for condition (detected by David
>    Doria) where ITK was configured & built with a compiler that
>    supports C++11 std::copy_n, but a user program was not.
> 
>    2. Small changes suggested by Bradley Lowencamp that didn't
>    make it into the last patch.
> 
>    Change-Id: I1635cccc52b2dbf3621b896db9a139f33cda4fe2
> 
> 
> So doing the change you suggest would undo this bug fix and this prior work.
> 
> The the problem presented above is that ITK was compiled with a newer version 
> of C++ then an application... So the solution is to make sure the version of 
> C++ the compiler supports at build time is greater than to equal to that used 
> during configuration.
> 
> 1) A small program an be compiled and run during cmake configuration to get 
> the __cplusplus values into a cmake variable.
> 2) This variable can be placed into the itkConfigure.h.in configuration file 
> as say ITK__CPLUSPLUS
> 3) Using C preprocess it can be checked if   __cplusplus >= ITK__CPLUSPLUS 
> 
> Brad
> 
> On Apr 25, 2013, at 8:59 AM, Niels Dekker <[email protected]> wrote:
> 
>> On 2013-04-25 14:39, Bradley Lowekamp wrote:
>>> I think the solution to this problem to obtain the __cplusplus version at 
>>> CMake configuration time,
>>> stash it in a variable to be used in a configuration file, and make sure 
>>> that it is always greater
>>> than or equal to that in the itkConfigure.h.in file.
>> 
>> Sorry, Brad, I don't really understand this solution. Wouldn't it be 
>> sufficient to just remove the line which says "#error ITK built with C++11, 
>> current source file is not." from itkStdAlgorithm.h?
>> 
>> Kind regard, Niels
>> 
> 

_______________________________________________
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://www.itk.org/mailman/listinfo/insight-developers

Reply via email to