| 10 |  | #define UTILS_PREDICATE_HPP | 
| 11 |  | #include <locale> | 
| 12 |  |  | 
| 13 | – | namespace oopse { | 
| 13 |  |  | 
| 14 | + |  | 
| 15 | + | #if defined(__SUNPRO_CC) | 
| 16 | + | #  define USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0)) | 
| 17 | + | #else | 
| 18 | + | #  define USE_FACET(Type, loc) std::use_facet< Type >(loc) | 
| 19 | + | #endif | 
| 20 | + |  | 
| 21 | + | namespace OpenMD { | 
| 22 | + |  | 
| 23 |  | template<typename Derived> | 
| 24 |  | struct PredFacade{}; | 
| 25 |  |  | 
| 30 |  |  | 
| 31 |  | template<typename CharT> | 
| 32 |  | bool operator()( CharT c ) const { | 
| 33 | < | return std::use_facet< std::ctype<CharT> >(loc_).is( type_, c ); | 
| 33 | > | return USE_FACET(std::ctype<CharT>, loc_).is( type_, c ); | 
| 34 |  | } | 
| 35 |  |  | 
| 36 |  | private: | 
| 100 |  | PredT pred_; | 
| 101 |  | }; | 
| 102 |  |  | 
| 103 | < | inline CharClassification isSpace(const std::locale& loc=std::locale()){ | 
| 103 | > | inline CharClassification isSpace(const std::locale& loc=std::locale()){ | 
| 104 |  | return CharClassification(std::ctype_base::space, loc); | 
| 105 |  | } | 
| 106 |  |  |