Hi Brad,

> Thanks, I missed the problem for the `return def` line.  However, I
> think both places are a problem.  I think it is simplest to just
> re-lookup the variable value at the end of the variable watch if()
> block.

Please find a patch in attachment. In order to reduce the number of
double value lookups (8378 for my simple case), I also changed the
interface of VariableAccessed to return a bool (resulting in 3 double
lookups). The patch was tested based onto 3.4.1 and I can confirm that
it fixes the problem.

>
>> 3. Define a move constructor in the cmDefinitions class. Probably that
>> is not an option as IIRC CMake uses C++98. I did, however, check this
>> solution locally, compiling CMake using VS2012 and can verify that it
>> fixes the problem.
>
> CMake actually does build as C++11 or C++14 by default with some
> compilers, but we must retain the ability to build and work as C++98.
> One could conditionally define a move constructor simply to improve
> efficiency when we do build as C++11.  The above fix would still be
> needed though.

Makes sense. I'm not sure, however, how to test if the compiler
supports move construction. A link on stackoverflow suggests to use
something like "201103L <= __cplusplus". Unfortunately this does not
work for, e.g., VS2012 as it still defines __cplusplus as 199711L.
What would be a good way of checking this?

Regards,
Yves

Attachment: 0001-Relookup-variable-value-in-case-it-has-an-associated.patch
Description: Binary data

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

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

Reply via email to