Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/33: Рейтинг темы: голосов - 33, средняя оценка - 4.52
3 / 3 / 0
Регистрация: 25.12.2009
Сообщений: 50

Пример из документации BOOST

06.05.2013, 10:16. Показов 6551. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро) Скопировал пример из документации boost, компилирую в среде Visual Studio 2012...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main(int argc, char *argv[]) {
    std::string str1("hello abc-*-ABC-*-aBc goodbye");
 
    typedef std::vector< boost::iterator_range<std::string::iterator> > find_vector_type;
    find_vector_type FindVec; // #1: Search for separators
    ifind_all( FindVec, str1, "abc" ); // FindVec == { [abc],[ABC],[aBc] }
 
    typedef std::vector< std::string > split_vector_type;
    split_vector_type SplitVec; // #2: Search for tokens
    boost::split( SplitVec, str1, boost::is_any_of("-*"), boost::token_compress_on ); // SplitVec == { "hello abc","ABC","aBc goodbye" }
 
    return 0;
}
Ошибка следующая:
C++
1
Ошибка    1   error C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'   c:\program files (x86)\microsoft visual studio 11.0\vc\include\xutility 2176    1   clock6
Странно, до этого создал 3 проекта c абсолютно идентичными параметрами и такой ошибки не было, а теперь вдруг выскочила, подскажите что не так?
Добавил атрибут -D_SCL_SECURE_NO_WARNINGS при компиляции и ошибка исчезла, но является ли это решением проблемы, не опасно ли так делать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2013, 10:16
Ответы с готовыми решениями:

boost::asio пример
Привет! Можно, пожалуйста, простейший пример работы с boost::asio - клиент-серверная программа, клиент которой должен отсылать...

Вопрос по синтаксису, пример из Boost
Фрагменты файла boost/date_time/posix_time/posix_time_config.hpp: namespace boost { namespace posix_time { ... class...

Не компилируется пример с использованием boost из книги
Visual Studio 10, Windows 7. Решил попробовать использовать boost. Выбрал пример 10.19 чтения содержимого каталога из книги...

30
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
06.05.2013, 11:24
В тексте самой ошибки подсказка:
Цитата Сообщение от Lopster92 Посмотреть сообщение
To disable this warning, use -D_SCL_SECURE_NO_WARNINGS option.
Хотя странно спрашивать об этом в разделе по билдеру...
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
06.05.2013, 12:26
Предупреждения компилятора лучше не подавлять, а разбираться в причинах.
В данном случае вас предупреждают, что используется устаревшая функция, вместо
которой лучше и безопаснее применять ее более совершенный аналог.

Если "виновник" предупреждения - сторонняя библиотека (Boost), то ничего другого не
остается, кроме как отключить его через макроопределение, которое указали выше.
А если причина в вашем коде - это повод задуматься, как минимум.

Подробнее об этом можно прочесть здесь - http://msdn.microsoft.com/en-u... .100).aspx
0
3 / 3 / 0
Регистрация: 25.12.2009
Сообщений: 50
06.05.2013, 16:02  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
В тексте самой ошибки подсказка:
Уважаемый, BRcr, прошу повнимательней прочитать суть вопроса:
Цитата Сообщение от Lopster92 Посмотреть сообщение
Добавил атрибут -D_SCL_SECURE_NO_WARNINGS при компиляции и ошибка исчезла, но является ли это решением проблемы, не опасно ли так делать?
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
06.05.2013, 20:33
Цитата Сообщение от Lopster92 Посмотреть сообщение
use -D_SCL_SECURE_NO_WARNINGS
Всегда использую, иначе ругается на вполне обычные вещи вроде std::copy.
1
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
07.05.2013, 09:22
Все дело в мелкософтовском говнокомпиляторе. Они хотят подсадить на свою говнопродукцию, поэтому вводят всякие дефайны типа "устаревшая и небезопасная функция", мол пользуйтесь нашим говном и тогда вам откроются врата в рай.
Любой другой компилятор собирает код, соответствующий стандарту без всяких варнингов и ошибок.
1
3 / 3 / 0
Регистрация: 25.12.2009
Сообщений: 50
07.05.2013, 14:00  [ТС]
Цитата Сообщение от oxotnik Посмотреть сообщение
Все дело в мелкософтовском говнокомпиляторе. Они хотят подсадить на свою говнопродукцию, поэтому вводят всякие дефайны типа "устаревшая и небезопасная функция", мол пользуйтесь нашим говном и тогда вам откроются врата в рай.
Любой другой компилятор собирает код, соответствующий стандарту без всяких варнингов и ошибок.
Благодарю за развернутый ответ:-)
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.05.2013, 16:42
Да все это ерунда если код якобы соответствует стандарту это не делает еще его более безопасным, тем более предупреждение это только предупреждение ...
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
07.05.2013, 16:51
Цитата Сообщение от Avazart Посмотреть сообщение
если код якобы соответствует стандарту это не делает еще его более безопасным
Не об этом речь, а о том, что вышеназванный компилятор содержит в себе реализацию стандартного С++ функционала с пометкой "небезопасный и устаревший" и так же параллельно содержит свою говнореализацию того же самого функционала, но с пометкой "безопасно - протестированно микрософтом".
Т.е. они заставляют программиста писать заведомо непереносимый код (если он не забъет на все эти гововарнинги).
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.05.2013, 16:57
Цитата Сообщение от oxotnik Посмотреть сообщение
"небезопасный и устаревший" и так же параллельно содержит свою говнореализацию того же самого функционала, но с пометкой "безопасно - протестированно микрософтом".
Ну может оно действительно не безопасно если пишут?
Цитата Сообщение от oxotnik Посмотреть сообщение
но микрософтом".
Т.е. они заставляют программиста писать заведомо непереносимый
То что он не переносимый не есть плохо...
Я собственно и не понимаю почему M$ должно заботится о том что бы код был переносимым на не их платформы...
Тут вся ответственность на программисте обращать внимание на warning или нет.
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
07.05.2013, 16:58
Цитата Сообщение от oxotnik Посмотреть сообщение
Т.е. они заставляют программиста писать заведомо непереносимый код (если он не забъет на все эти гововарнинги).
Ну не заставляют - "ненавязчиво" предлагают )
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
07.05.2013, 17:04
Цитата Сообщение от Avazart Посмотреть сообщение
Ну может оно действительно не безопасно если пишут?
Т.е. С++ от микрософта это не совсем С++ получается? Ибо часть STL у них "небезопасна". Мне не понятно, зачем делать аналог стандартной С-шной функции но с каким нибудь префиксом/суффиксом и обявлять что она безопасна, а реализацию стандартной ф-ции намерянно сделать через задницу и написать что она небезопасна?
Цитата Сообщение от Avazart Посмотреть сообщение
То что он не переносимый не есть плохо...
Пару недель назад закончил перенос 4-х проектов (не своих)... И скажу что непереносимость от микрософта это очень плохо.
Цитата Сообщение от Avazart Посмотреть сообщение
Я собственно и не понимаю почему M$ должно заботится о том что бы код был переносимым.
Да они в принципе о многом уже озаботились
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.05.2013, 17:11
Цитата Сообщение от oxotnik Посмотреть сообщение
Да они в принципе о многом уже озаботились
ну это даже смешно ...

Опять же нафига думать от том что бы код был переносим на платформы потенциальных конкурентов ?

Добавлено через 2 минуты
Пару недель назад закончил перенос 4-х проектов (не своих)... И скажу что непереносимость от микрософта это очень плохо.
Ну думаю это вина не M$, а программиста ...
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
07.05.2013, 17:16
Цитата Сообщение от Avazart Посмотреть сообщение
Ну может оно действительно не безопасно если пишут?
Ну это "небезопасно" - вполне стандартные средства, и выдавать на это предупреждение - довольно странно. "Не забудь определить тот макрос с _" .

Не по теме:

Может стоило сразу писать: C++: this programming language may be unsafe. Consider using C++/CLI instead? :)

2
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
07.05.2013, 17:18
Цитата Сообщение от Avazart Посмотреть сообщение
Опять же нафига думать от том что бы код был переносим на платформы потенциальных конкурентов ?
Под винду есть только один православный компилятор?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.05.2013, 17:23
Цитата Сообщение от gray_fox Посмотреть сообщение
Ну это "небезопасно" - вполне стандартные средства, и выдавать на это предупреждение - довольно странно.
Если есть лучшая альтернатива, то думаю не странно, вопрос только в том действительно ли она лучше и почему.

Добавлено через 1 минуту
Цитата Сообщение от oxotnik Посмотреть сообщение
Под винду есть только один православный компилятор?
А зачем менять компилятор если и так работает ?
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
07.05.2013, 17:28
Цитата Сообщение от Avazart Посмотреть сообщение
Если есть лучшая альтернатива, то думаю не странно, вопрос только в том действительно ли она лучше и почему.
ИМХО лучше бы сделали тогда _SCL_SECURE_WARNINGS, который включал бы эти предупреждения, раз такие заботливые. Так то, конечно, не проблема один макрос определить.
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
07.05.2013, 17:33
Цитата Сообщение от Avazart Посмотреть сообщение
А зачем менять компилятор если и так работает ?
Патамушта он платный, а штоб поставить бесплатный - надо посношаться хорошенько с регистрациями и со всем сайтом производителя.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.05.2013, 17:35
Цитата Сообщение от oxotnik Посмотреть сообщение
Патамушта он платный, а штоб поставить бесплатный - надо посношаться хорошенько с регистрациями и со всем сайтом производителя.
Так изначально пиши на том который тебя устраивает компиляторе, зачем таскать туда-сюда код и удивляться почему проблемы.
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
07.05.2013, 17:43
Цитата Сообщение от Avazart Посмотреть сообщение
Так изначально пиши на том который тебя устраивает компиляторе, зачем таскать туда-сюда код и удивляться почему проблемы.
А если несколько независимых контор пишут код, и у каждой своя политика в отношении компиляторов? Для этого и был придуман стандарт, на который мелкософт и плюет ради подсаживания на свои говнопродукты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2013, 17:43
Помогаю со студенческими работами здесь

Boost начало работы: Undefined reference to `boost::system::generic_category() '
Добрый день Собственно говоря возникла необходимость использовать boost в работе. Поставил так: sudo apt-get install boostlib-all-dev ...

Boost Log - undefined reference to `boost::system::system_category()'
Пытаюсь скомпилировать код из примеров Boost Log:#include &lt;boost/log/trivial.hpp&gt; int main(int, char*) { ...

Использование boost и boost.build с несколькими компиляторами
Здравствуйте! Собрал библиотеку boost и boost.build для двух компиляторов: MinGW 4.5.2 и Visual C++ 2010 Express Edition. Для этого...

Метапрограммирование в boost::proto (boost::spirit)
В библиотеке boost:: proto есть такой код calculator&lt;proto::terminal&lt;placeholder&lt;0&gt; &gt;::type&gt; const _1; ...

Qt и boost boost::system::generic_category()
Добрый день Не подскажите как настроить Qt на работу с boost? У меня в принципе все работает: умные указатели и тд. Но когда...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru