This file specializes `std::swap` for a CGAL class. The `noexpect`
part of the signature was missing (when C++11).
```
In file included from [..]/test/Polynomial/Exponent_vector.cpp:4:
[...]/include/CGAL/Exponent_vector.h:172:6: warning: 'swap<CGAL::Exponent_vector>' is missing exception specification 'noexcept(is_nothrow_move_constructible<Exponent_vector>::value && is_nothrow_move_assignable<Exponent_vector>::value)'
void swap(CGAL::Exponent_vector& ev1, CGAL::Exponent_vector& ev2){
^
noexcept(is_nothrow_move_constructible<Exponent_vector>::value && is_nothrow_move_assignable<Exponent_vector>::value)
[..]/include/CGAL/Exponent_vector.h:172:6: note: previous declaration is here
1 warning generated.
```
https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-4.14-Ic-99/Polynomial/TestReport_cgaltester_x86-64_Darwin-13.0_Apple-clang-5.0_Release-cpp11.gz
The last bug detected by this PR was actually due to a global static
variable. Now that it is a static variable in a function, like others,
the memory de-allocations seem to be done in the right order (even with
Boost implementation of TLS).
Thanks Sébastien @sloriot for the patch.
the warning C4396 happens for these functions on msvc2015
----------------------------------------------
Compiler Warning (level 2) C4396
Visual Studio 2008
"name" : the inline specifier cannot be used when a friend declaration refers to a specialization of a function template
A specialization of a function template cannot specify any of the inline specifiers. The compiler issues warning C4396 and ignores the inline specifier.
To correct this error
Remove the inline, __inline, or __forceinline specifier from the friend function declaration.
----------------------------------------------
When CORE_arithmetic_kernel and LEDA_arithmetic_kernel are used, then
one should have:
#include <CGAL/CORE_arithmetic_kernel.h>
#include <CGAL/LEDA_arithmetic_kernel.h>