mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -04:00 
			
		
		
		
	
		
			
	
	
		
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | #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 | ||
|  | 
 |