[Insight-developers] VS2010 and itkStdAlgorithm

Bradley Lowekamp blowekamp at mail.nih.gov
Thu Apr 25 09:12:21 EDT 2013


Niels,

It would solve your problem. But.. why was it added? 

$ git log Modules/Core/Common/include/itkStdAlgorithm.h
commit 137b5c35a733782cb443a19ef4901520e98bac98
Author: Kent Williams <norman-k-williams at uiowa.edu>
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 <niels-xtk at xs4all.nl> 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
> 



More information about the Insight-developers mailing list