Sha256: 0d6aa97b573874b1b4c58d8c2db8ef1b336ed9d251a0d1e76105b149e592572f

Contents?: true

Size: 1.21 KB

Versions: 7

Compression:

Stored size: 1.21 KB

Contents

// -*- c++ -*-
#pragma once
#ifndef __XOT_STRING_H__
#define __XOT_STRING_H__


#include <stdarg.h>
#include <string>
#include <vector>


#define XOT_STRINGF(format, result) \
	Xot::String result; \
	do \
	{ \
		if (format) \
		{ \
			va_list args; \
			va_start(args, format); \
			result = Xot::stringf(format, args); \
			va_end(args); \
		} \
	} \
	while (false)


namespace Xot
{


	class String : public std::string
	{

		typedef std::string Super;

		public:

			String ();

			String (const char* str);

			template <typename ITERATOR>
			String (ITERATOR begin, ITERATOR end) : Super(begin, end) {}

			String upcase () const;

			String downcase () const;

			String strip () const;

			operator const char* () const;

			friend String operator + (const String& lhs, const String& rhs);

			friend String operator + (const String& lhs, const char*   rhs);

			friend String operator + (const char*   lhs, const String& rhs);

	};// String


	typedef std::vector<String> StringList;


	String stringf (const char* format, ...);

	String stringf (const char* format, va_list args);

	void split(StringList* result, const char* string, char separator = '\n');

	template <typename T> String to_s (const T& val);


}// Xot


#endif//EOH

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
xot-0.3.3 include/xot/string.h
xot-0.3.2 include/xot/string.h
xot-0.3.1 include/xot/string.h
xot-0.3 include/xot/string.h
xot-0.2.1 include/xot/string.h
xot-0.2 include/xot/string.h
xot-0.1.42 include/xot/string.h