STL VS13 C++: Error C4996 not disabling -
i have code in vs13:
double distance(vector <double> point) {     return sqrt(inner_product(point[0], point[4], point, 0)); }  int main() {     vector < double > point {2, 2, 2, 2};     cout << distance(point);     cin.get(); } which invokes
    error c4996 ('std::_inner_product2': function call parameters may unsafe - call relies on caller check passed values correct. disable warning, use -d_scl_secure_no_warnings)  c:\program files\microsoft visual studio 12.0\vc\include\xutility(372): error c2825: '_iter': must class or namespace when followed '::'     c:\program files\microsoft visual studio 12.0\vc\include\xutility(372): error c2039: 'value_type' : not member of '`global namespace''     c:\program files\microsoft visual studio 12.0\vc\include\xutility(372): error c2146: syntax error : missing ';' before identifier 'value_type'     c:\program files\microsoft visual studio 12.0\vc\include\xutility(372): error c2602: 'std::iterator_traits<_init>::value_type' not member of base class of 'std::iterator_traits<_init>' i know there many similar questions here. read documentation on msdn.
as result, tried next solutions:
1) #define _scl_secure_no_warnings 
from past reviews seemed work me causes whole bunch of errors like:
c:\program files\microsoft visual studio 12.0\vc\include\xutility(371): error c2825: '_iter': must class or namespace when followed '::' 2)
#pragma warning(disable:4996) #pragma warning(default:4996) caused same errors;
3) project properties -> configuration properties -> c/c++ -> general -> sdl checks -> no.
just not work.
could take , write how can disable error? thanks!
i think mean following function
double distance( const std::vector<double> &point )  {     return std::sqrt( std::inner_product( point.begin(), point.end(), point.begin(), 0.0 ) ); } here demonstrative program
#include <iostream> #include <vector> #include <numeric> #include <cmath>  double distance( const std::vector<double> &point )  {     return std::sqrt( std::inner_product( point.begin(), point.end(), point.begin(), 0.0 ) ); }  int main() {      std::vector<double> point = { 2, 2, 2, 2 };      std::cout << distance( point ) << std::endl; } the output is
4 
Comments
Post a Comment