Hello Dominik, The flag OSG_DISABLE_MICROSOFT_SECURE_CXXX handles the following microsoft defines:
OSG_DISABLE_MICROSOFT_SECURE_CXXX = ON => -D _CRT_SECURE_NO_DEPRECATE -D _CRT_SECURE_NO_WARNINGS -D _CRT_NONSTDC_NO_DEPRECATE -D _SECURE_SCL = 0 -D _SCL_SECURE_NO_WARNINGS -D _SCL_SECURE_NO_DEPRECATE See in CMake/UpdateCompiler.cmake around line 100 Let me cite the MSDN: _SECURE_SCL Checked iterators ensure that you do not overwrite the bounds of your container. Defines whether Checked Iterators are enabled. If defined as 1, unsafe iterator use causes a runtime error. If defined as 0, checked iterators are disabled. .... The default value for _SECURE_SCL is 1, meaning checked iterators are enabled by default. _SCL_SECURE_NO_WARNINGS Calling any one of the potentially unsafe methods in the Standard C++ Library will result in Compiler Warning (level 3) C4996. To disable this warning, define the macro _SCL_SECURE_NO_WARNINGS _SCL_SECURE_NO_DEPRECATE suppresses the C++ library related deprecations _CRT_SECURE_NO_WARNINGS ...eliminate deprecation warnings for the older, less secure functions. The simplest is simply to define _CRT_SECURE_NO_WARNINGS or use the warning pragma. _CRT_SECURE_NO_DEPRECATE suppresses the C library related deprecations _CRT_NONSTDC_NO_DEPRECATE Another source of deprecation warnings, unrelated to security, is the POSIX functions. Replace POSIX function names with their standard equivalents (for example, change access to _access), or disable POSIX-related deprecation warnings by defining _CRT_NONSTDC_NO_WARNINGS. The flag OSG_DISABLE_MS_ITERATOR_DEBUGGING handles the following microsoft define: OSG_DISABLE_MS_ITERATOR_DEBUGGING = ON => -D_HAS_ITERATOR_DEBUGGING=0 See in CMake/UpdateCompiler.cmake around line 114 >From MSDN: _HAS_ITERATOR_DEBUGGING Defines whether the iterator debugging feature is enabled in a debug build. By default, iterator debugging is enabled. Be aware the _HAS_ITERATOR_DEBUGGING is independent from the _SECURE_SCL stuff. I normally use OSG_DISABLE_MICROSOFT_SECURE_CXXX=ON OSG_DISABLE_MS_ITERATOR_DEBUGGING=OFF The _HAS_ITERATOR_DEBUGGING does have quite a performance impact which I do not tolerate therefore I do not use it. http://lists.boost.org/Archives/boost/2006/02/101369.php However, I have read that problems showed up with the VC10 compiler (which I do not use currently) with respect to the flag. So it might be better to leave the default for this one. http://social.msdn.microsoft.com/Forums/en-ZA/vcgeneral/thread/44f41bcd-b2c0-4abf-80d0-f319a6265a88 At last I would like to give a warning because libraries compiled with different settings of these flags are not ABI compatible. So if you use a setting use it for all libraries that use STL/Boost etc. components in their interface. At very last please look into the following thread http://www.mail-archive.com/opensg-users%40lists.sourceforge.net/msg13745.html. The current OSGConfig.h might be not correct. Gerrit is checking that. I hope I could shed some light on the topic... Best, Johannes PS.: See also http://www.mail-archive.com/opensg-users@lists.sourceforge.net/msg13639.html ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users