#ifndef FIXC11_H
#define FIXC11_H

#ifdef ANDROID

#include <cmath>
#include <sstream>

namespace std {

	//template <typename T> T sqrt(const T val) {return ::sqrt(val);}


	//}

	template <typename T> inline string to_string(const T val) {
		stringstream ss;
		ss << val;
		return ss.str();
	}

	template <typename T> inline T round(const T val) {
		return ::round(val);
	}

	// http://stackoverflow.com/questions/19478687/no-member-named-stoi-in-namespace-std
	  inline  int stoi(const std::string& str) {
		   std::istringstream is(str);
		   int val; is >> val; return val;
	   }

	   // analog zu oben
	   inline float stof(const std::string& str) {
		   std::istringstream is(str);
		   float val; is >> val; return val;
	   }

	   // analog zu oben
	   inline double stod(const std::string& str) {
		   std::istringstream is(str);
		   double val; is >> val; return val;
	   }

	   // analog zu oben
	   inline uint64_t stol(const std::string& str) {
		   std::istringstream is(str);
		   uint64_t val; is >> val; return val;
	   }

}

#endif

#endif // FIXC11_H
