Skip to content

Iterator related warnings in visual studio build #3661

@aardappel

Description

@aardappel
2>C:\src\binaryen\src\wasm-type.h(221,26): warning C4996: 'std::iterator<std::random_access_iterator_tag,wasm::Type,long,wasm::Type *,const wasm::Type &>': warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. (compiling source file C:\src\binaryen\src\asmjs\asm_v_wasm.cpp)
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xutility(6006,54): message : see declaration of 'std::iterator' (compiling source file C:\src\binaryen\src\asmjs\asm_v_wasm.cpp)
2>C:\src\binaryen\src\wasm-type.h(251,26): warning C4996: 'std::iterator<std::random_access_iterator_tag,wasm::Type,long,wasm::Type *,const wasm::Type &>::difference_type': warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. (compiling source file C:\src\binaryen\src\asmjs\asm_v_wasm.cpp)
2>C:\src\binaryen\src\wasm-type.h(255,24): warning C4996: 'std::iterator<std::random_access_iterator_tag,wasm::Type,long,wasm::Type *,const wasm::Type &>::difference_type': warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. (compiling source file C:\src\binaryen\src\asmjs\asm_v_wasm.cpp)
2>C:\src\binaryen\src\wasm-type.h(258,26): warning C4996: 'std::iterator<std::random_access_iterator_tag,wasm::Type,long,wasm::Type *,const wasm::Type &>::difference_type': warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. (compiling source file C:\src\binaryen\src\asmjs\asm_v_wasm.cpp)
2>C:\src\binaryen\src\wasm-type.h(262,24): warning C4996: 'std::iterator<std::random_access_iterator_tag,wasm::Type,long,wasm::Type *,const wasm::Type &>::difference_type': warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. (compiling source file C:\src\binaryen\src\asmjs\asm_v_wasm.cpp)
2>C:\src\binaryen\src\wasm-type.h(265,5): warning C4996: 'std::iterator<std::random_access_iterator_tag,wasm::Type,long,wasm::Type *,const wasm::Type &>::difference_type': warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. (compiling source file C:\src\binaryen\src\asmjs\asm_v_wasm.cpp)
2>C:\src\binaryen\src\wasm-type.h(269,5): warning C4996: 'std::iterator<std::random_access_iterator_tag,wasm::Type,long,wasm::Type *,const wasm::Type &>::value_type': warning STL4015: The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT deprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, stop deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can define _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning. (compiling source file C:\src\binaryen\src\asmjs\asm_v_wasm.cpp)

And many more. Last modified here 9752196 but it doesn't seem like the problem was introduced there.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions