Hopefully this won't change anything as we already had a check for it.
However, it is now based compiler checks rather than version numbers.
We haven't use static_assert anywhere in code yet anyway.
We now have a two new polyvox_ macros:
* polyvox_constexpr which is 'constexpr' is supported and '' otherwise
* polyvox_constexpr_const constexpr which is also 'constexpr' is supported
but falls back to 'const' otherwise.
These macros should be safe to use liberally without worrying about which
compiler you're on.
It will #define a each of the basic features detected by CMake which can
then be used by other headers (like TypeDef.h) to set things up for
PolyVox.
It is this file which you will have to manually edit and rename if you want
to skip using CMake.
By changing the 'pass by value' to be a 'pass by const reference' (and
adding some const qualifiers) the calculator can take any of the three
types.
Performance could be improved further using C++11 perfect forwarding to
pass the function on without changing a thing. I added a comment to remind
us of this.
Also added a test for passing a function and a (commented out) test for
passing a lambda.
Since these are now functions and not in a class there's no obvious
encapsulation for the two related functions. Previously they were
only available in the PolyVox namespace documentation where they were
hidden among lots of other things. Adding the \file command to
Raycast.h allows up to add comments to that page (_raycast_8h.html)
and have that as the central location for the raycast docs.
There still needs to be a comment about the form that the callback
must take (return type and arguments) including the fact that both
functors and lambdas work.