#include "read.h"
#include <iostream>
using namespace std;

bool all(double d){return true;d=0;}
bool not_neg(double d){return d>=0;}
bool nat(int n){return n>=0;}//natural

double read_real(const string &msg, const string &err, bool check(double)){
	double r;
	bool loop=false;
	string devnull;
	do{
		cout<<msg;
		cin>>r;
		loop=cin.fail() || !check(r);
		if(loop){
			cout<<err<<endl;
			cin.clear();
			getline(cin, devnull);
		}
	}while(loop);
	return r;
}

int read_int(const string &msg, const string &err, bool check(int)){
	int n;
	bool loop=false;
	string devnull;
	do{
		cout<<msg;
		cin>>n;
		loop=cin.fail() || !check(n);
		if(loop){
			cout<<err<<endl;
			cin.clear();
			getline(cin, devnull);
		}
	}while(loop);
	return n;
}
