--- include/Inventor/SbBasic.h.orig 2010-03-02 13:20:09 UTC +++ include/Inventor/SbBasic.h @@ -88,17 +88,24 @@ inline Type SbSqr(const Type val) { // warning if so for debug builds. inlined like this to not take much // screenspace in inline functions. -// cc_debugerror_post() is not attempted resolved before the template is -// used, hence the missing Inventor/errors/SoDebugError.h #include. This -// "trick" does only work *portably* for functions in the global namespace. +// Missing include for cc_debugerror_post() added here. The previous "trick" +// for not needing to resolve symbols in global namespace no longer works +// with newer compilers. +#ifndef NDEBUG +#include <Inventor/C/errors/debugerror.h> +#endif // !NDEBUG + +#ifndef NDEBUG template <typename Type> inline void SbDividerChk(const char * funcname, Type divider) { -#ifndef NDEBUG if (!(divider != static_cast<Type>(0))) cc_debugerror_post(funcname, "divide by zero error.", divider); -#endif // !NDEBUG } +#else +template <typename Type> +inline void SbDividerChk(const char *, Type) {} +#endif // !NDEBUG /* ********************************************************************** */