That should fix the following warning.
```
[ 50%] Building CXX object CMakeFiles/dynamic_properties_test.dir/dynamic_properties_test.cpp.o
/usr/local/bin/c++ -DCGAL_TEST_SUITE=1 -DCGAL_USE_GMP -DCGAL_USE_MPFR -I/home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/test/Property_map/../../include -isystem /usr/include/x86_64-linux-gnu -I/home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/test/Property_map -I/home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/include -I/mnt/testsuite/include -DDONT_USE_BOOST_PROGRAM_OPTIONS -Wall -Wextra -std=c++1z -frounding-math -Wall -frounding-math -o CMakeFiles/dynamic_properties_test.dir/dynamic_properties_test.cpp.o -c /home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/test/Property_map/dynamic_properties_test.cpp
In file included from /mnt/testsuite/include/CGAL/basic.h:43,
from /mnt/testsuite/include/CGAL/Cartesian/Cartesian_base.h:29,
from /mnt/testsuite/include/CGAL/Simple_cartesian.h:29,
from /mnt/testsuite/include/CGAL/Exact_predicates_inexact_constructions_kernel.h:29,
from /home/cgal_tester/build/src/cmake/platforms/Ubuntu-latest-GCC6-CXX1z/test/Property_map/dynamic_properties_test.cpp:2:
/mnt/testsuite/include/CGAL/Polyhedron_incremental_builder_3.h: In destructor 'CGAL::Polyhedron_incremental_builder_3<HalfedgeDS_>::~Polyhedron_incremental_builder_3()':
/mnt/testsuite/include/CGAL/assertions.h:104:30: warning: 'bool std::uncaught_exception()' is deprecated [-Wdeprecated-declarations]
(CGAL::possibly(EX)||std::uncaught_exception()?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
^~~~~~~~~~~~~~~~~~
/mnt/testsuite/include/CGAL/Polyhedron_incremental_builder_3.h:204:9: note: in expansion of macro 'CGAL_destructor_assertion'
CGAL_destructor_assertion( check_protocoll == 0);
^~~~~~~~~~~~~~~~~~~~~~~~~
```
https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-4.12-Ic-168/Property_map/TestReport_lrineau_Ubuntu-latest-GCC6-CXX1z.gzFix#2806.
- `CGAL_NO_ASSERTIONS` was used *before* it was potentially modified by
the `NDEBUG` macro.
- I have also added a macro `CGAL_DEBUG` that allows to disable `assert`
but not CGAL assertions, using:
-DNDEBUG -DCGAL_DEBUG
First step where all the XXX.cpp are copied into XXX_impl.h files.
The macro CGAL_HEADER_ONLY allows to know if impl files need to be
included or not into header files; and allow to decide if functions are
in impl files are inline or not.
Next step: process with static variables for the header only version.
CGAL_assume(EX) is like CGAL_assertion, but is not disabled in release
mode. In debug mode, it is similar to CGAL_assertion(). In release mode, it
uses builtins of the compilateur, like the MSVC __assume or the g++/clang
__builtin_unreachable to give an hint to the compiler that some situation
in the code cannot happen.
In order to fix such a warning from g++-4.8:
warning: typedef ‘boost_static_assert_typedef_241’ locally defined but
not used [-Wunused-local-typedefs]
then:
- create one macro CGAL_UNUSED that is "__attribute__ ((__unused__))"
with g++ or empty otherwise,
- use it after BOOST_STATIC_ASSERT in the definition of
CGAL_static_assertion.
| ------------------------------------------------------------------------
| r65838 | afabri | 2011-10-12 13:01:14 +0200 (Wed, 12 Oct 2011) | 5 lines
| Changed paths:
| M /branches/next/STL_Extension/include/CGAL/assertions.h
|
| When CGAL_NO_ASSERTIONS, fix CGAL_static_assertion
|
| CGAL_static_assertion cannot be "static_cast<void>(0)" because that
| macro can also be used in a class or namespace scope.
|
| ------------------------------------------------------------------------
| r65833 | lrineau | 2011-10-11 23:43:39 +0200 (Tue, 11 Oct 2011) | 6 lines
| Changed paths:
| M /branches/next/STL_Extension/include/CGAL/assertions.h
|
| Avoid a warning with -ansi -pedantic when CGAL_NO_ASSERTIONS
|
| When CGAL_NO_ASSERTIONS is defined (when NDEBUG is defined, for example),
| "CGAL_static_assertion(true);" must not be expanded to ";", to avoid a
| pedantic warning "extra ;".
|
| ------------------------------------------------------------------------
That was just a very wrong way to fix a pedantic warning: the new
implementations were buggy.
When CGAL_NO_ASSERTIONS is defined (when NDEBUG is defined, for example),
"CGAL_static_assertion(true);" must not be expanded to ";", to avoid a
pedantic warning "extra ;".