| 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 |
|
|