// Standard C++ <cstdint> header
// Copyright (C) Florian Negele

// This file is part of the Eigen Compiler Suite.

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

// The ECS 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 General Public License for more details.

// Under Section 7 of the GNU General Public License version 3,
// the copyright holder grants you additional permissions to use
// this file as described in the ECS Runtime Support Exception.

// You should have received a copy of the GNU General Public License
// and a copy of the ECS Runtime Support Exception along with
// the ECS.  If not, see <https://www.gnu.org/licenses/>.

#ifndef ECS_CPP_CSTDINT_HEADER_INCLUDED
#define ECS_CPP_CSTDINT_HEADER_INCLUDED

namespace std
{
	typedef signed char int8_t, int_fast8_t, int_least8_t;
	typedef signed short int16_t, int_fast16_t, int_least16_t;
	typedef signed long int32_t, int_fast32_t, int_least32_t;
	typedef signed long long int64_t, int_fast64_t, int_least64_t;

	typedef unsigned char uint8_t, uint_fast8_t, uint_least8_t;
	typedef unsigned short uint16_t, uint_fast16_t, uint_least16_t;
	typedef unsigned long uint32_t, uint_fast32_t, uint_least32_t;
	typedef unsigned long long uint64_t, uint_fast64_t, uint_least64_t;

	using intmax_t = signed long long;
	using intptr_t = decltype ((int*) 0 - (int*) 0);
	using uintmax_t = unsigned long long;
	using uintptr_t = decltype (sizeof 0);
}

#endif // ECS_CPP_CSTDINT_HEADER_INCLUDED
