-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Переход из 32 бит к 64.

Суббота, 12 Декабря 2020 г. 09:34 + в цитатник
a_n_y_a:
Цитата Qraizer @
Откуда вообще взялась проблема с несоответствием типов?

Есть переменная 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{}? Что-то я не пойму.

https://forum.sources.ru/index.php?showtopic=420996&view=findpost&p=3842764

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку