, , . int, , , , std:: size_t - , , -, .
. size_t, API.
" > 0" , ala
template <typename T>
void f(T t)
{
if (!(t > 0))
throw std::runtime_error("be positive!");
...
}
, :
void f(size_t);
void f(int32_t);
void f(int64_t);
... , re caller, size_t ( , ). size_t- - , .
- , ( , size_t). , .
EDIT - ...
#include <iostream>
template <typename T>
void f(T t)
{
if (!(t > 0))
std::cout << "bad call f(" << (int)t << ")\n";
else
std::cout << "good f(" << (int)t << ")\n";
}
int main()
{
f((char)-1);
f((unsigned char)255);
}