Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> W8030 Temporary used for parameter, BCB warning why? 
:(
    Опции темы
np9mi7
  Дата 19.6.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Добрый день.

Есть код:
Код

template<class I,class T> struct __pair_deleter : public std::unary_function<std::pair<I,T*>&,void>
{
    inline void operator()(std::pair<I,T*>& refPair) const throw()
    {
                 _ASSERT ( refPair.second);
                //---------------------------------------------------------------
        delete refPair.second;
                //---------------------------------------------------------------
                refPair.second = NULL;
       }
};

Использование:
Код

// ****
__pair_deleter<I,T> deleter;deleter(*iter); // iter = map<I,T>::iterator
// ****


Во время вызова компилятор выдает предупреждение:
Цитата

[C++ Warning] some.h(179): W8030 Temporary used for parameter 'refPair' in call to '__pair_deleter<I,T>::operator()


В чем проблема? Никак не пойму smile

Заранее благодарен за ответы

Это сообщение отредактировал(а) np9mi7 - 19.6.2005, 17:58


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
np9mi7
  Дата 20.6.2005, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Ух как все тонко оказалось:

Дело в том что *iter возвращает std::pair<const key,type>, а я в качестве ссылки принимаю std::pair<key,type>, короче нужно так:
Код

template<class I,class T> struct __pair_deleter : public std::unary_function<std::pair<const I,T*>&,void>
{
    inline void operator()(std::pair<const I,T*>& refPair) const throw()
    {
                 _ASSERT ( refPair.second);
                //---------------------------------------------------------------
        delete refPair.second;
                //---------------------------------------------------------------
                refPair.second = NULL;
       }
};



--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.4475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.