/*	Copyright (C) 2004 Garrett A. Kajmowicz

	This file is part of the uClibc++ Library.

	This library is free software; you can redistribute it and/or
	modify it under the terms of the GNU Lesser General Public
	License as published by the Free Software Foundation; either
	version 2.1 of the License, or (at your option) any later version.

	This library is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
	Lesser General Public License for more details.

	You should have received a copy of the GNU Lesser General Public
	License along with this library; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/
#pragma once
#ifdef ARDUINO_ARCH_AVR
#include "basic_definitions"
#include "string"
#pragma GCC visibility push(default)

namespace std
{
	class _UCXXEXPORT locale
	{
	public:
		// types:
		class facet;
		class id;
		typedef unsigned char category;

		static const category
			none = 0,
			collate = 0x01, ctype = 0x02,
			monetary = 0x04, numeric = 0x08,
			time = 0x10, messages = 0x20,
			all = collate | ctype | monetary | numeric | time | messages;

		// construct/copy/destroy:
		locale() _UCXX_USE_NOEXCEPT
		{
			return;
		}
		locale(const locale &other) _UCXX_USE_NOEXCEPT
		{
			(void)other;
			return;
		}
		locale(const char *) _UCXX_USE_NOEXCEPT
		{
			return;
		}
		~locale() _UCXX_USE_NOEXCEPT
		{
			return;
		}
		const locale &operator=(const locale &) _UCXX_USE_NOEXCEPT
		{
			return *this;
		}
		std::string name() const { return "C"; }
	};

	class _UCXXEXPORT locale::facet
	{
		friend class locale;
		explicit facet(size_t = 0)
		{
			return;
		}
		virtual ~facet()
		{
			return;
		}
	};

	class _UCXXEXPORT locale::id
	{
		id() {}
	};
}
#pragma GCC visibility pop
#else
#include "ext/atomicity.h"
#include_next <locale>
#endif