es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La librería Octree de Point Cloud Library está generando un error.

Solo con incluir el archivo de encabezado en mi código, obtengo este error.
Estoy utilizando Visual Studio 2019 y C++17, ya he incluido los archivos de enlace, pero no quiere funcionar.

¿Qué podría ser?

Error C4996 ‘std::iterator<std::forward_iterator_tag,const pcl::octree::octreenode,void,const=”” pcl::octree::octreenode=”” *,const=”” pcl::octree::octreenode=”” &=””>’: advertencia STL4015: la plantilla de clase std::iterator (utilizada como una clase base para proporcionar typedef) está obsoleta en C++17. (El encabezado NO está obsoleta). El estándar C++ nunca ha requerido que los iteradores definidos por el usuario se deriven de std::iterator. Para corregir esta advertencia, deje de derivar de std::iterator y comience a proporcionar typedef accesibles públicamente llamados iterator<category, value_type,=”” difference_type,=”” pointer=”” y=”” reference.=”” tenga=”” en=”” cuenta=”” que=”” se=”” requiere=”” que=”” value_type=”” sea=”” no=”” constante,=”” incluso=”” para=”” iteradores=”” constantes.=”” puede=”” definir=”” silence_cxx17_iterator_base_class_deprecation_warning=”” o=”” _silence_all_cxx17_deprecation_warnings=”” para=”” reconocer=”” que=”” ha=”” recibido=”” esta=”” advertencia.=”” tcc2=”” d:\dev\cmake\vcpkg\installed\x64-windows\include\pcl\octree\octreeiterator.h=”” 71=””></category,></std::forward_iterator_tag,const>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el uso de la plantilla de clase std::iterator está en desuso en C++17 y que está generando una advertencia. La solución es evitar derivar de std::iterator y, en su lugar, proporcionar typedefs de acceso público con los nombres iterator_category, value_type, difference_type, pointer y reference. Si value_type es un iterador constante, aún así debe definirse como no constante. Alternativamente, se puede reconocer la advertencia definiendo _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING o _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS.

Comments are closed.