From 97230b70d37394d5d80a9fa1af27006bb5b86bbf Mon Sep 17 00:00:00 2001 From: fherrero <fherrero@iri.upc.edu> Date: Tue, 27 Oct 2020 11:26:24 +0100 Subject: [PATCH] Changed from auto_ptr to unique_ptr. Fix comparison between unsigned int --- include/adc_circuit.h | 4 ++-- include/adc_geometries.h | 16 ++++++++-------- include/adc_object.h | 2 +- include/adc_road.h | 2 +- include/adc_signals.h | 2 +- src/CMakeLists.txt | 1 + src/adc_circuit.cpp | 6 +++--- src/adc_geometries.cpp | 12 ++++++------ src/adc_object.cpp | 32 ++++++++++++++++---------------- src/adc_road.cpp | 18 +++++++++--------- src/adc_signals.cpp | 4 ++-- src/opendrive_to_gazebo.cpp | 2 +- src/xml/CMakeLists.txt | 2 +- 13 files changed, 52 insertions(+), 51 deletions(-) diff --git a/include/adc_circuit.h b/include/adc_circuit.h index 63ecdf6..afa5cb6 100644 --- a/include/adc_circuit.h +++ b/include/adc_circuit.h @@ -106,7 +106,7 @@ class CAdcCircuit * \param open_drive The objects generated with XSD. * */ - void load(std::auto_ptr<OpenDRIVE> &open_drive); + void load(std::unique_ptr<OpenDRIVE> &open_drive); }; -#endif \ No newline at end of file +#endif diff --git a/include/adc_geometries.h b/include/adc_geometries.h index 7fcc89f..e398c7c 100644 --- a/include/adc_geometries.h +++ b/include/adc_geometries.h @@ -55,7 +55,7 @@ class CAdcGeometry * \param geometry_info The objects generated with XSD. * */ - virtual void load_param(std::auto_ptr<planView::geometry_type> &geometry_info) = 0; + virtual void load_param(std::unique_ptr<planView::geometry_type> &geometry_info) = 0; public: /** @@ -152,7 +152,7 @@ class CAdcGeometry * \param geometry_info The objects generated with XSD. * */ - void load(std::auto_ptr<planView::geometry_type> &geometry_info); + void load(std::unique_ptr<planView::geometry_type> &geometry_info); /** * \brief Function to set the common geometry parameters. @@ -268,7 +268,7 @@ class CAdcGeoLine: public CAdcGeometry * \param geometry_info The objects generated with XSD. * */ - void load_param(std::auto_ptr<planView::geometry_type> &geometry_info); + void load_param(std::unique_ptr<planView::geometry_type> &geometry_info); }; @@ -402,7 +402,7 @@ class CAdcGeoSpiral: public CAdcGeometry * \param geometry_info The objects generated with XSD. * */ - void load_param(std::auto_ptr<planView::geometry_type> &geometry_info); + void load_param(std::unique_ptr<planView::geometry_type> &geometry_info); }; @@ -528,7 +528,7 @@ class CAdcGeoArc: public CAdcGeometry * \param geometry_info The objects generated with XSD. * */ - void load_param(std::auto_ptr<planView::geometry_type> &geometry_info); + void load_param(std::unique_ptr<planView::geometry_type> &geometry_info); }; @@ -669,7 +669,7 @@ class CAdcGeoPoly3: public CAdcGeometry * \param geometry_info The objects generated with XSD. * */ - void load_param(std::auto_ptr<planView::geometry_type> &geometry_info); + void load_param(std::unique_ptr<planView::geometry_type> &geometry_info); }; @@ -806,6 +806,6 @@ class CAdcGeoParamPoly3: public CAdcGeometry * \param geometry_info The objects generated with XSD. * */ - void load_param(std::auto_ptr<planView::geometry_type> &geometry_info); + void load_param(std::unique_ptr<planView::geometry_type> &geometry_info); }; -#endif \ No newline at end of file +#endif diff --git a/include/adc_object.h b/include/adc_object.h index f73774e..6549223 100644 --- a/include/adc_object.h +++ b/include/adc_object.h @@ -278,7 +278,7 @@ class CAdcObject * \param object_info The object generated with XSD. * */ - void load(std::auto_ptr<objects::object_type> &object_info); + void load(std::unique_ptr<objects::object_type> &object_info); }; #endif diff --git a/include/adc_road.h b/include/adc_road.h index b0cf8a6..b19be20 100644 --- a/include/adc_road.h +++ b/include/adc_road.h @@ -205,7 +205,7 @@ class CAdcRoad * \param road_info The objects generated with XSD. * */ - void load(std::auto_ptr<OpenDRIVE::road_type> &road_info); + void load(std::unique_ptr<OpenDRIVE::road_type> &road_info); }; #endif diff --git a/include/adc_signals.h b/include/adc_signals.h index d1347b6..5e02050 100644 --- a/include/adc_signals.h +++ b/include/adc_signals.h @@ -205,7 +205,7 @@ class CAdcSignals * \param signal_info The objects generated with XSD. * */ - void load(std::auto_ptr<signals::signal_type> &signal_info); + void load(std::unique_ptr<signals::signal_type> &signal_info); }; #endif diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 513a54b..48007ea 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,5 @@ # driver source files +SET(CMAKE_CXX_STANDARD 11) SET(sources opendrive_to_gazebo.cpp adc_circuit.cpp adc_road.cpp adc_geometries.cpp adc_signals.cpp adc_object.cpp) # application header files SET(headers ../include/opendrive_to_gazebo.h ../include/adc_circuit.h ../include/adc_road.h ../include/adc_geometries.h ../include/adc_signals.h ../include/adc_object.h) diff --git a/src/adc_circuit.cpp b/src/adc_circuit.cpp index aa320b3..cf7b6a0 100644 --- a/src/adc_circuit.cpp +++ b/src/adc_circuit.cpp @@ -101,14 +101,14 @@ void CAdcCircuit::generate_spawn_launch_files(std::string &dir) objects_out_file.close(); } -void CAdcCircuit::load(std::auto_ptr<OpenDRIVE> &open_drive) +void CAdcCircuit::load(std::unique_ptr<OpenDRIVE> &open_drive) { ////////////////// Access road atributes for (OpenDRIVE::road_iterator road_it(open_drive->road().begin()); road_it != open_drive->road().end(); ++road_it) { CAdcRoad *road = new CAdcRoad(); - std::auto_ptr<OpenDRIVE::road_type> road_info(new OpenDRIVE::road_type(*road_it)); + std::unique_ptr<OpenDRIVE::road_type> road_info(new OpenDRIVE::road_type(*road_it)); road->load(road_info); add_road(road); } -} \ No newline at end of file +} diff --git a/src/adc_geometries.cpp b/src/adc_geometries.cpp index 7875ae7..3a35100 100644 --- a/src/adc_geometries.cpp +++ b/src/adc_geometries.cpp @@ -75,7 +75,7 @@ void CAdcGeometry::debug(void) debug_param(); } -void CAdcGeometry::load(std::auto_ptr<planView::geometry_type> &geometry_info) +void CAdcGeometry::load(std::unique_ptr<planView::geometry_type> &geometry_info) { this->min_s = (geometry_info->s().present() ? geometry_info->s().get() : 0.0); this->max_s = min_s + (geometry_info->length().present() ? geometry_info->length().get() : 0.0); @@ -141,7 +141,7 @@ void CAdcGeoLine::debug_param(void) } -void CAdcGeoLine::load_param(std::auto_ptr<planView::geometry_type> &geometry_info) +void CAdcGeoLine::load_param(std::unique_ptr<planView::geometry_type> &geometry_info) { } @@ -212,7 +212,7 @@ void CAdcGeoSpiral::debug_param(void) std::cout << " params: start_curvature = " << this->curv_start << ", end_curvature = " << this->curv_end << std::endl; } -void CAdcGeoSpiral::load_param(std::auto_ptr<planView::geometry_type> &geometry_info) +void CAdcGeoSpiral::load_param(std::unique_ptr<planView::geometry_type> &geometry_info) { this->curv_start = (geometry_info->spiral().get().curvStart().present() ? geometry_info->spiral().get().curvStart().get() : 0.0); this->curv_end = (geometry_info->spiral().get().curvEnd().present() ? geometry_info->spiral().get().curvEnd().get() : 0.0); @@ -280,7 +280,7 @@ void CAdcGeoArc::debug_param(void) std::cout << " params: curvature = " << this->curvature << std::endl; } -void CAdcGeoArc::load_param(std::auto_ptr<planView::geometry_type> &geometry_info) +void CAdcGeoArc::load_param(std::unique_ptr<planView::geometry_type> &geometry_info) { this->curvature = (geometry_info->arc().get().curvature().present() ? geometry_info->arc().get().curvature().get() : 0.0); } @@ -363,7 +363,7 @@ void CAdcGeoPoly3::debug_param(void) std::cout << " params: a = " << this->param.a << ", b = " << this->param.b << ", c = " << this->param.c << ", d = " << this->param.d << std::endl; } -void CAdcGeoPoly3::load_param(std::auto_ptr<planView::geometry_type> &geometry_info) +void CAdcGeoPoly3::load_param(std::unique_ptr<planView::geometry_type> &geometry_info) { this->param.a = (geometry_info->poly3().get().a().present() ? geometry_info->poly3().get().a().get() : 0.0); this->param.b = (geometry_info->poly3().get().b().present() ? geometry_info->poly3().get().b().get() : 0.0); @@ -485,7 +485,7 @@ void CAdcGeoParamPoly3::debug_param(void) std::cout << " V params: a = " << this->v_param.a << ", b = " << this->v_param.b << ", c = " << this->v_param.c << ", d = " << this->v_param.d << std::endl; } -void CAdcGeoParamPoly3::load_param(std::auto_ptr<planView::geometry_type> &geometry_info) +void CAdcGeoParamPoly3::load_param(std::unique_ptr<planView::geometry_type> &geometry_info) { this->u_param.a = (geometry_info->paramPoly3().get().aU().present() ? geometry_info->paramPoly3().get().aU().get() : 0.0); this->u_param.b = (geometry_info->paramPoly3().get().bU().present() ? geometry_info->paramPoly3().get().bU().get() : 0.0); diff --git a/src/adc_object.cpp b/src/adc_object.cpp index 12bbb0b..65419ff 100644 --- a/src/adc_object.cpp +++ b/src/adc_object.cpp @@ -69,16 +69,16 @@ CAdcObject::CAdcObject(const CAdcObject & object) this->repeat = object.repeat; std::vector<std::vector<Object_corner> >().swap(this->corners); - for (int i = 0; i < object.corners.size(); i++) + for (unsigned int i = 0; i < object.corners.size(); i++) { std::vector<Object_corner> corner_aux; - for (int j = 0; j < object.corners[i].size(); j++) + for (unsigned int j = 0; j < object.corners[i].size(); j++) corner_aux.push_back(object.corners[i][j]); this->corners.push_back(corner_aux); } std::vector<Object_repeat>().swap(this->repeat_info); - for (int i = 0; i < object.repeat_info.size(); i++) + for (unsigned int i = 0; i < object.repeat_info.size(); i++) this->repeat_info.push_back(object.repeat_info[i]); } @@ -145,10 +145,10 @@ CAdcObject::CAdcObject(int id, double s, double t, double heading, std::string t this->outline = true; this->repeat = false; std::vector<std::vector<Object_corner> >().swap(this->corners); - for (int i = 0; i < corners.size(); i++) + for (unsigned int i = 0; i < corners.size(); i++) { std::vector<Object_corner> corner_aux; - for (int j = 0; j < corners[i].size(); j++) + for (unsigned int j = 0; j < corners[i].size(); j++) corner_aux.push_back(corners[i][j]); this->corners.push_back(corner_aux); } @@ -174,15 +174,15 @@ void CAdcObject::operator = (const CAdcObject &object) this->outline = object.outline; this->repeat = object.repeat; std::vector<std::vector<Object_corner> >().swap(this->corners); - for (int i = 0; i < object.corners.size(); i++) + for (unsigned int i = 0; i < object.corners.size(); i++) { std::vector<Object_corner> corner_aux; - for (int j = 0; j < object.corners[i].size(); j++) + for (unsigned int j = 0; j < object.corners[i].size(); j++) corner_aux.push_back(object.corners[i][j]); this->corners.push_back(corner_aux); } std::vector<Object_repeat>().swap(this->repeat_info); - for (int i = 0; i < object.repeat_info.size(); i++) + for (unsigned int i = 0; i < object.repeat_info.size(); i++) this->repeat_info.push_back(object.repeat_info[i]); } @@ -210,10 +210,10 @@ void CAdcObject::get_corners(std::vector<std::vector<Object_corner> > &corners) { std::vector<std::vector<Object_corner> >().swap(corners); //resize better than push_back - for (int i = 0; i < this->corners.size(); i++) + for (unsigned int i = 0; i < this->corners.size(); i++) { std::vector<Object_corner> corner_aux; - for (int j = 0; j < this->corners[i].size(); j++) + for (unsigned int j = 0; j < this->corners[i].size(); j++) corner_aux.push_back(this->corners[i][j]); corners.push_back(corner_aux); } @@ -232,7 +232,7 @@ bool CAdcObject::is_repeat(void) void CAdcObject::get_repeat_info(std::vector<Object_repeat> &repeat_info) { std::vector<Object_repeat>().swap(this->repeat_info); - for (int i = 0; i < this->repeat_info.size(); i++) + for (unsigned int i = 0; i < this->repeat_info.size(); i++) repeat_info.push_back(this->repeat_info[i]); } @@ -252,10 +252,10 @@ void CAdcObject::debug(bool world_pose) std::cout << " world pose: x = " << this->world_x << ", y = " << this->world_y << ", yaw = " << this->world_yaw << std::endl; if (this->outline) { - for (int i = 0; i < this->corners.size(); i++) + for (unsigned int i = 0; i < this->corners.size(); i++) { std::cout << " Subobject_" << i << ":" << std::endl; - for (int j = 0; j < this->corners[i].size(); j++) + for (unsigned int j = 0; j < this->corners[i].size(); j++) { std::cout << " corner_" << j << ": s = " << this->corners[i][j].s << ", t = " << this->corners[i][j].t << ", height = " << this->corners[i][j].height << std::endl; if (world_pose) @@ -266,7 +266,7 @@ void CAdcObject::debug(bool world_pose) if (this->repeat) { int count = 0; - for (int i = 0; i < this->repeat_info.size(); i++) + for (unsigned int i = 0; i < this->repeat_info.size(); i++) { for (int j = 0; j < this->repeat_info[i].n; j++) { @@ -315,7 +315,7 @@ void CAdcObject::append_objects_spawn(std::string &filename) out_file.close(); } -void CAdcObject::load(std::auto_ptr<objects::object_type> &object_info) +void CAdcObject::load(std::unique_ptr<objects::object_type> &object_info) { std::stringstream ss(object_info->id().get()); ss >> this->id; @@ -401,4 +401,4 @@ void CAdcObject::load(std::auto_ptr<objects::object_type> &object_info) this->repeat_info.push_back(repeat_aux); } } -} \ No newline at end of file +} diff --git a/src/adc_road.cpp b/src/adc_road.cpp index 18bed17..230f438 100644 --- a/src/adc_road.cpp +++ b/src/adc_road.cpp @@ -227,7 +227,7 @@ void CAdcRoad::append_objects_spawn(std::string &filename) this->objects[i]->append_objects_spawn(filename); } -void CAdcRoad::load(std::auto_ptr<OpenDRIVE::road_type> &road_info) +void CAdcRoad::load(std::unique_ptr<OpenDRIVE::road_type> &road_info) { std::stringstream ss(road_info->id().get()); ss >> this->id; @@ -240,35 +240,35 @@ void CAdcRoad::load(std::auto_ptr<OpenDRIVE::road_type> &road_info) if (geo_it->line().present()) { CAdcGeoLine *line = new CAdcGeoLine(); - std::auto_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); + std::unique_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); line->load(geo_info); add_geometry(line); } else if (geo_it->spiral().present()) { CAdcGeoSpiral *spi = new CAdcGeoSpiral(); - std::auto_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); + std::unique_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); spi->load(geo_info); add_geometry(spi); } else if (geo_it->arc().present()) { CAdcGeoArc *arc = new CAdcGeoArc(); - std::auto_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); + std::unique_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); arc->load(geo_info); add_geometry(arc); } else if (geo_it->poly3().present()) { CAdcGeoPoly3 *poly3 = new CAdcGeoPoly3(); - std::auto_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); + std::unique_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); poly3->load(geo_info); add_geometry(poly3); } else if (geo_it->paramPoly3().present()) { CAdcGeoParamPoly3 *parampoly3 = new CAdcGeoParamPoly3(); - std::auto_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); + std::unique_ptr<planView::geometry_type> geo_info(new planView::geometry_type(*geo_it)); parampoly3->load(geo_info); add_geometry(parampoly3); } @@ -280,7 +280,7 @@ void CAdcRoad::load(std::auto_ptr<OpenDRIVE::road_type> &road_info) for (signals::signal_iterator signal_it(road_info->signals().get().signal().begin()); signal_it != road_info->signals().get().signal().end(); ++signal_it) { CAdcSignals *sign = new CAdcSignals(); - std::auto_ptr<signals::signal_type> signal_info(new signals::signal_type(*signal_it)); + std::unique_ptr<signals::signal_type> signal_info(new signals::signal_type(*signal_it)); sign->load(signal_info); add_signal(sign); } @@ -292,9 +292,9 @@ void CAdcRoad::load(std::auto_ptr<OpenDRIVE::road_type> &road_info) for (objects::object_iterator object_it(road_info->objects().get().object().begin()); object_it != road_info->objects().get().object().end(); ++object_it) { CAdcObject *obj = new CAdcObject(); - std::auto_ptr<objects::object_type> object_info(new objects::object_type(*object_it)); + std::unique_ptr<objects::object_type> object_info(new objects::object_type(*object_it)); obj->load(object_info); add_object(obj); } } -} \ No newline at end of file +} diff --git a/src/adc_signals.cpp b/src/adc_signals.cpp index 0e7f176..0bbee83 100644 --- a/src/adc_signals.cpp +++ b/src/adc_signals.cpp @@ -217,7 +217,7 @@ void CAdcSignals::append_sign_spawn(std::string &filename) out_file.close(); } -void CAdcSignals::load(std::auto_ptr<signals::signal_type> &signal_info) +void CAdcSignals::load(std::unique_ptr<signals::signal_type> &signal_info) { std::stringstream ss(signal_info->id().get()); ss >> this->id; @@ -232,4 +232,4 @@ void CAdcSignals::load(std::auto_ptr<signals::signal_type> &signal_info) if (signal_info->orientation().present() && signal_info->orientation().get() == orientation::cxx_1) reverse = true; this->heading += (reverse != DEFAULT_REVERSE_ORIENTATION ? M_PI : 0.0); -} \ No newline at end of file +} diff --git a/src/opendrive_to_gazebo.cpp b/src/opendrive_to_gazebo.cpp index 5ddf476..5bc308b 100644 --- a/src/opendrive_to_gazebo.cpp +++ b/src/opendrive_to_gazebo.cpp @@ -30,7 +30,7 @@ void COpenDriveFormat::load(std::string &filename, bool debug) { // try to open the specified file try{ - std::auto_ptr<OpenDRIVE> open_drive(OpenDRIVE_(filename.c_str(), xml_schema::flags::dont_validate)); + std::unique_ptr<OpenDRIVE> open_drive(OpenDRIVE_(filename.c_str(), xml_schema::flags::dont_validate)); this->adc_circuit.load(open_drive); diff --git a/src/xml/CMakeLists.txt b/src/xml/CMakeLists.txt index 7f45af6..c2bf844 100644 --- a/src/xml/CMakeLists.txt +++ b/src/xml/CMakeLists.txt @@ -36,7 +36,7 @@ IF(XSD_FOUND) ADD_CUSTOM_TARGET(xsd_files_gen DEPENDS ${XSD_SOURCES_INT}) ADD_CUSTOM_COMMAND( OUTPUT ${XSD_SOURCES_INT} - COMMAND xsdcxx cxx-tree --generate-serialization --reserved-name access=parkingSpace_access --reserved-name link=lane_link ${XSD_FILES} + COMMAND xsdcxx cxx-tree --std c++11 --generate-serialization --reserved-name access=parkingSpace_access --reserved-name link=lane_link ${XSD_FILES} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${XSD_PATH_FILES} COMMENT "Parsing the xml template file ${XSD_FILES}") -- GitLab