mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef BOOST_MATH_S__HPP
 | |
| #define BOOST_MATH_S__HPP
 | |
| 
 | |
| // Copyright (c) 2006 Johan Rade
 | |
| // Copyright (c) 2012 Paul A. Bristow
 | |
| 
 | |
| // Distributed under the Boost Software License, Version 1.0.
 | |
| // (See accompanying file LICENSE_1_0.txt
 | |
| // or copy at http://www.boost.org/LICENSE_1_0.txt)
 | |
| 
 | |
| // The macro S_ lets you write
 | |
| //
 | |
| //     basic_string<CharType> s = S_("foo");
 | |
| // and
 | |
| //     CharType c = S_('a');
 | |
| //
 | |
| // provided that CharType is either char or wchar_t.
 | |
| // Used by tests of output of signed zero and others.
 | |
| 
 | |
| #ifdef _MSC_VER
 | |
| #   pragma warning(push)
 | |
| #   pragma warning(disable : 4512) // conditional expression is constant.
 | |
| #endif
 | |
| 
 | |
| #include <string>
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| #define S_(a) make_literal_helper(a, L##a)
 | |
| 
 | |
| class char_literal_helper {
 | |
| public:
 | |
|     char_literal_helper(char c, wchar_t wc) : c_(c), wc_(wc) {}
 | |
|     operator char() { return c_; }
 | |
|     operator wchar_t() { return wc_; }
 | |
| private:
 | |
|     const char c_;
 | |
|     const wchar_t wc_;
 | |
| };
 | |
| 
 | |
| class string_literal_helper {
 | |
| public:
 | |
|     string_literal_helper(const char* s, const wchar_t* ws) : s_(s), ws_(ws) {}
 | |
|     operator std::string() { return s_; }
 | |
|     operator std::wstring() { return ws_; }
 | |
| private:
 | |
|     const char* s_;
 | |
|     const wchar_t* ws_;
 | |
| };
 | |
| 
 | |
| inline char_literal_helper make_literal_helper(char c, wchar_t wc)
 | |
| {
 | |
|     return char_literal_helper(c, wc);
 | |
| }
 | |
| 
 | |
| inline string_literal_helper make_literal_helper(const char* s, const wchar_t* ws)
 | |
| {
 | |
|     return string_literal_helper(s, ws);
 | |
| }
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| #ifdef _MSC_VER
 | |
| #   pragma warning(pop)
 | |
| #endif
 | |
| 
 | |
| #endif // BOOST_MATH_S__HPP
 | |
| 
 |