Форум программистов, компьютерный форум CyberForum.ru

Cannot pass objects of non-POD type - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Union
 Аватар для Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
26.02.2011, 22:25     Cannot pass objects of non-POD type #1
Создаю контейнер
C++
1
std::unordered_map<std::string, sers> on_us
Создаю итератор:
C++
1
std::unordered_map<std::string, sers>::iterator iterator_on_us;
Далее заполняю контейнер значениями.
После нужно вынуть одно из значений.
Проверяю есть ли оно вообще, и если есть - вывожу:
C++
1
2
3
4
iterator_on_us = on_us.find(key);
if( iterator_on_us != on_us.end()) {
          printf("Значение: \"%s\"\n", iterator_on_us->first);
}
При компиляции выскакивает ошибки:
warning: cannot pass objects of non-POD type ‘const struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >’ through ‘...’; call will abort at runtime
warning: format ‘%s’ expects type ‘char*’, but argument 2 has type ‘int’
При запуске приложение на этом месте вылетает с ошибкой: Недопустимая инструкция
Подскажите, что делаю не так?
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2011, 22:25     Cannot pass objects of non-POD type
Посмотрите здесь:

литература shared objects & dynamic shared objects C++
C++ total size of local objects too large
C++ Как записывать и считывать не POD типы данных из бинарного файла?
E2094 'operator<<' not implemented in type 'ostream' for arguments of type 'Binary' C++
Deprecated in C++11, Function objects C++
C++ Mix of type 'bool' and type 'float'
C++ С++ not implemented in type 'istream' for arguments of type 'float *'из-за чего эта ошибка и как исправить?
Incomplete type used in nested type specifier - Итерация по списку аргументов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
27.02.2011, 02:11     Cannot pass objects of non-POD type #2
Может быть
C++
1
printf("Значение: \"%s\"\n", (*iterator_on_us).first.c_str());
Yandex
Объявления
27.02.2011, 02:11     Cannot pass objects of non-POD type
Ответ Создать тему
Опции темы

Текущее время: 20:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru