- Я постараюсь ответить вам так же, как я понял из вашего вопроса:
1- Если вы хотите, чтобы static const int в вашей программе инициализировался с помощью функции:
int Data()
{
return rand();
}
class A
{
public :
static const int ee;
};
const int A::ee=Data();
Это работает на VS 2008
2- Если вы хотите получить максимальное и минимальное число для данного типа данных, используйте эти определения
INT_MAX, INT_MIN, LONG_MAX и т. Д ..
3 - Однако, если вам нужно использовать эти типы шаблонов, то
Жесткий код самих шаблонов
template<>
int MaxData()
{
return INT_MAX;
}
и
template<>
long MaxData()
{
return LONG_MAX ;
}
и назовите их вот так
int y=MaxData<int>();
4- и если вы имеете дело только с двоичными представленными типами, используйте это:
template <class T>
T MaxData(){
return ~(1<<((sizeof(T)*8)-1));
}
а это
template <class T>
T MinData(){
return (1<<((sizeof(T)*8)-1));
}
Надеюсь, это поможет вам ..