Откуда вообще взялась проблема с несоответствием типов?
Есть переменная int A; Переменная может принимать отрицательное значение, и ей присваивается значение количества элементов в векторе:
vector<...> V;
A=V.size();
Вот тут и проблема, преобразования size_t (unsigned int) в int. У них разные диапазоны. Я написал функцию преобразования size_t в int:
int IzSIZE_T__to__int(size_t R)
{
if (R > INT_MAX)
{
CMyThrowSize_t__to__int th;
throw(th);
return(-1);
}
else
{
return((int)R);
};
};
и
class CMyThrowSize_t__to__int:public std::exception
{
public:
CMyThrowSize_t__to__int() {};
~CMyThrowSize_t__to__int() {};
};
Проверял в тестовом проекте, функция работает, исключение создается и обрабатывается. Но у меня рабочий проект MDI, вызов throw происходит в просмотре. В каком месте текста программы (класса) надо написать блок try{}? Что-то я не пойму.