diff --git a/Source/kwsys/kwsys_stl.hxx.in b/Source/kwsys/kwsys_stl.hxx.in index 5a58fbfa6..fe72ba8b7 100644 --- a/Source/kwsys/kwsys_stl.hxx.in +++ b/Source/kwsys/kwsys_stl.hxx.in @@ -16,14 +16,33 @@ #include <@KWSYS_NAMESPACE@/Configure.hxx> +/* Avoid warnings in MSVC standard headers. */ #ifdef _MSC_VER # pragma warning (push, 1) # pragma warning (disable: 4702) # pragma warning (disable: 4786) #endif +/* The HP standard library defines the functor "times" instead of + "multiplies" as specified by C++98 20.3.2 for backward + compatibility with earlier specifications. Defining this macro + fixes this behavior. The name "times" also conflicts with the + function declared in sys/times.h on that platform, so we must do + this as a work-around anyway. */ +#if defined(__HP_aCC) && !defined(__HPACC_USING_MULTIPLIES_IN_FUNCTIONAL) +# define __HPACC_USING_MULTIPLIES_IN_FUNCTIONAL +# define @KWSYS_NAMESPACE@_DEFINED___HPACC_USING_MULTIPLIES_IN_FUNCTIONAL +#endif + +/* Include the real header. */ #include <@KWSYS_STL_HEADER@> +/* Cleanup. */ +#if defined(@KWSYS_NAMESPACE@_DEFINED___HPACC_USING_MULTIPLIES_IN_FUNCTIONAL) +# undef @KWSYS_NAMESPACE@_DEFINED___HPACC_USING_MULTIPLIES_IN_FUNCTIONAL +# undef __HPACC_USING_MULTIPLIES_IN_FUNCTIONAL +#endif + #ifdef _MSC_VER # pragma warning(pop) #endif