kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #25268
Re: [PATCH] Replace boost::shared_ptr with std::shared_ptr
Patch committed in product branch r6957. Thanks.
Wayne
On 6/29/2016 10:16 AM, Simon Richter wrote:
> This is a simple 1:1 replacement for all cases where shared_ptr is not used
> to point at an array (array handling is not in C++11).
> ---
> 3d-viewer/3d_mesh_model.h | 4 ++--
> common/gal/opengl/opengl_gal.cpp | 2 +-
> common/geometry/hetriang.cpp | 34 +++++++++++++++++-----------------
> eeschema/class_libentry.h | 7 +++----
> eeschema/sch_component.h | 5 ++---
> include/gal/cairo/cairo_gal.h | 5 +++--
> include/gal/opengl/opengl_gal.h | 4 ++--
> include/gal/opengl/vertex_manager.h | 6 +++---
> include/painter.h | 2 +-
> include/ttl/halfedge/hetriang.h | 9 ++++-----
> pcbnew/class_board_connected_item.h | 2 +-
> pcbnew/class_netclass.cpp | 6 ++----
> pcbnew/class_netclass.h | 5 +++--
> pcbnew/dialogs/dialog_design_rules.cpp | 4 +---
> pcbnew/drc_stuff.h | 4 ++--
> pcbnew/legacy_plugin.cpp | 4 +---
> pcbnew/legacy_plugin.h | 4 +++-
> pcbnew/pcb_painter.h | 3 ++-
> pcbnew/pcb_parser.cpp | 4 +---
> pcbnew/ratsnest_data.cpp | 13 ++++++-------
> pcbnew/ratsnest_data.h | 4 ++--
> pcbnew/router/pns_optimizer.h | 2 +-
> pcbnew/specctra.h | 5 +++--
> pcbnew/tools/edit_points.h | 9 +++++----
> pcbnew/tools/point_editor.cpp | 5 ++---
> pcbnew/tools/point_editor.h | 9 +++++----
> pcbnew/tools/selection_tool.cpp | 2 +-
> 27 files changed, 79 insertions(+), 84 deletions(-)
>
> diff --git a/3d-viewer/3d_mesh_model.h b/3d-viewer/3d_mesh_model.h
> index 734789f..bc35e43 100644
> --- a/3d-viewer/3d_mesh_model.h
> +++ b/3d-viewer/3d_mesh_model.h
> @@ -31,7 +31,6 @@
> #define __3D_MESH_MODEL_H__
>
> #include <memory>
> -#include <boost/shared_ptr.hpp>
> #include <vector>
> #define GLM_FORCE_RADIANS
> #include <glm/glm.hpp>
> @@ -39,10 +38,11 @@
> #include "3d_material.h"
> #include "3d_rendering/3d_render_raytracing/shapes3D/cbbox.h"
>
> +
> class S3D_MESH;
>
> /** A smart pointer to an S3D_MESH object */
> -typedef boost::shared_ptr<S3D_MESH> S3D_MESH_PTR;
> +typedef std::shared_ptr<S3D_MESH> S3D_MESH_PTR;
>
> /** A container of smar S3D_MESH object pointers */
> typedef std::vector<S3D_MESH_PTR> S3D_MESH_PTRS;
> diff --git a/common/gal/opengl/opengl_gal.cpp b/common/gal/opengl/opengl_gal.cpp
> index bcbee68..32d353d 100644
> --- a/common/gal/opengl/opengl_gal.cpp
> +++ b/common/gal/opengl/opengl_gal.cpp
> @@ -1049,7 +1049,7 @@ int OPENGL_GAL::BeginGroup()
> {
> isGrouping = true;
>
> - boost::shared_ptr<VERTEX_ITEM> newItem( new VERTEX_ITEM( *cachedManager ) );
> + std::shared_ptr<VERTEX_ITEM> newItem = std::make_shared<VERTEX_ITEM>( *cachedManager );
> int groupNumber = getNewGroupNumber();
> groups.insert( std::make_pair( groupNumber, newItem ) );
>
> diff --git a/common/geometry/hetriang.cpp b/common/geometry/hetriang.cpp
> index e5cf26c..8383a8e 100644
> --- a/common/geometry/hetriang.cpp
> +++ b/common/geometry/hetriang.cpp
> @@ -46,8 +46,8 @@
> #include <fstream>
> #include <limits>
> #include <boost/foreach.hpp>
> -#include <boost/make_shared.hpp>
> #include <class_board_connected_item.h>
> +#include <memory>
>
> using namespace hed;
>
> @@ -127,22 +127,22 @@ EDGE_PTR TRIANGULATION::InitTwoEnclosingTriangles( NODES_CONTAINER::iterator aFi
> double dx = ( xmax - xmin ) / fac;
> double dy = ( ymax - ymin ) / fac;
>
> - NODE_PTR n1 = boost::make_shared<NODE>( xmin - dx, ymin - dy );
> - NODE_PTR n2 = boost::make_shared<NODE>( xmax + dx, ymin - dy );
> - NODE_PTR n3 = boost::make_shared<NODE>( xmax + dx, ymax + dy );
> - NODE_PTR n4 = boost::make_shared<NODE>( xmin - dx, ymax + dy );
> + NODE_PTR n1 = std::make_shared<NODE>( xmin - dx, ymin - dy );
> + NODE_PTR n2 = std::make_shared<NODE>( xmax + dx, ymin - dy );
> + NODE_PTR n3 = std::make_shared<NODE>( xmax + dx, ymax + dy );
> + NODE_PTR n4 = std::make_shared<NODE>( xmin - dx, ymax + dy );
>
> // diagonal
> - EDGE_PTR e1d = boost::make_shared<EDGE>();
> - EDGE_PTR e2d = boost::make_shared<EDGE>();
> + EDGE_PTR e1d = std::make_shared<EDGE>();
> + EDGE_PTR e2d = std::make_shared<EDGE>();
>
> // lower triangle
> - EDGE_PTR e11 = boost::make_shared<EDGE>();
> - EDGE_PTR e12 = boost::make_shared<EDGE>();
> + EDGE_PTR e11 = std::make_shared<EDGE>();
> + EDGE_PTR e12 = std::make_shared<EDGE>();
>
> // upper triangle
> - EDGE_PTR e21 = boost::make_shared<EDGE>();
> - EDGE_PTR e22 = boost::make_shared<EDGE>();
> + EDGE_PTR e21 = std::make_shared<EDGE>();
> + EDGE_PTR e22 = std::make_shared<EDGE>();
>
> // lower triangle
> e1d->SetSourceNode( n3 );
> @@ -453,12 +453,12 @@ EDGE_PTR TRIANGULATION::SplitTriangle( EDGE_PTR& aEdge, const NODE_PTR& aPoint )
> EDGE_PTR e3( e2->GetNextEdgeInFace() );
> NODE_PTR n3( e3->GetSourceNode() );
>
> - EDGE_PTR e1_n = boost::make_shared<EDGE>();
> - EDGE_PTR e11_n = boost::make_shared<EDGE>();
> - EDGE_PTR e2_n = boost::make_shared<EDGE>();
> - EDGE_PTR e22_n = boost::make_shared<EDGE>();
> - EDGE_PTR e3_n = boost::make_shared<EDGE>();
> - EDGE_PTR e33_n = boost::make_shared<EDGE>();
> + EDGE_PTR e1_n = std::make_shared<EDGE>();
> + EDGE_PTR e11_n = std::make_shared<EDGE>();
> + EDGE_PTR e2_n = std::make_shared<EDGE>();
> + EDGE_PTR e22_n = std::make_shared<EDGE>();
> + EDGE_PTR e3_n = std::make_shared<EDGE>();
> + EDGE_PTR e33_n = std::make_shared<EDGE>();
>
> e1_n->SetSourceNode( n1 );
> e11_n->SetSourceNode( aPoint );
> diff --git a/eeschema/class_libentry.h b/eeschema/class_libentry.h
> index 25fb9eb..24ea806 100644
> --- a/eeschema/class_libentry.h
> +++ b/eeschema/class_libentry.h
> @@ -33,9 +33,8 @@
> #include <general.h>
> #include <lib_draw_item.h>
> #include <lib_field.h>
> -#include <boost/shared_ptr.hpp>
> -#include <boost/weak_ptr.hpp>
> #include <vector>
> +#include <memory>
>
> class LINE_READER;
> class OUTPUTFORMATTER;
> @@ -46,8 +45,8 @@ class LIB_FIELD;
>
>
> typedef std::vector<LIB_ALIAS*> LIB_ALIASES;
> -typedef boost::shared_ptr<LIB_PART> PART_SPTR; ///< shared pointer to LIB_PART
> -typedef boost::weak_ptr<LIB_PART> PART_REF; ///< weak pointer to LIB_PART
> +typedef std::shared_ptr<LIB_PART> PART_SPTR; ///< shared pointer to LIB_PART
> +typedef std::weak_ptr<LIB_PART> PART_REF; ///< weak pointer to LIB_PART
>
>
> /* values for member .m_options */
> diff --git a/eeschema/sch_component.h b/eeschema/sch_component.h
> index 7d64546..5094afc 100644
> --- a/eeschema/sch_component.h
> +++ b/eeschema/sch_component.h
> @@ -36,7 +36,6 @@
> #include <sch_field.h>
> #include <transform.h>
> #include <general.h>
> -#include <boost/weak_ptr.hpp>
> #include <vector>
> #include <lib_draw_item.h>
>
> @@ -51,9 +50,9 @@ class SCH_COLLECTOR;
>
>
> /// A container for several SCH_FIELD items
> -typedef std::vector<SCH_FIELD> SCH_FIELDS;
> +typedef std::vector<SCH_FIELD> SCH_FIELDS;
>
> -typedef boost::weak_ptr<LIB_PART> PART_REF;
> +typedef std::weak_ptr<LIB_PART> PART_REF;
>
>
> /**
> diff --git a/include/gal/cairo/cairo_gal.h b/include/gal/cairo/cairo_gal.h
> index bc378d4..c0d42f7 100644
> --- a/include/gal/cairo/cairo_gal.h
> +++ b/include/gal/cairo/cairo_gal.h
> @@ -33,9 +33,10 @@
> #include <cairo.h>
>
> #include <gal/graphics_abstraction_layer.h>
> -#include <boost/smart_ptr/shared_ptr.hpp>
> #include <wx/dcbuffer.h>
>
> +#include <memory>
> +
> #if defined(__WXMSW__)
> #define SCREEN_DEPTH 24
> #else
> @@ -274,7 +275,7 @@ private:
> typedef GAL super;
>
> // Compositing variables
> - boost::shared_ptr<CAIRO_COMPOSITOR> compositor; ///< Object for layers compositing
> + std::shared_ptr<CAIRO_COMPOSITOR> compositor; ///< Object for layers compositing
> unsigned int mainBuffer; ///< Handle to the main buffer
> unsigned int overlayBuffer; ///< Handle to the overlay buffer
> RENDER_TARGET currentTarget; ///< Current rendering target
> diff --git a/include/gal/opengl/opengl_gal.h b/include/gal/opengl/opengl_gal.h
> index 8e218c7..2bf1ba1 100644
> --- a/include/gal/opengl/opengl_gal.h
> +++ b/include/gal/opengl/opengl_gal.h
> @@ -41,8 +41,8 @@
> #include <wx/glcanvas.h>
>
> #include <map>
> -#include <boost/smart_ptr/shared_ptr.hpp>
> #include <boost/smart_ptr/shared_array.hpp>
> +#include <memory>
>
> #ifndef CALLBACK
> #define CALLBACK
> @@ -282,7 +282,7 @@ private:
> static GLuint fontTexture; ///< Bitmap font texture handle (shared)
>
> // Vertex buffer objects related fields
> - typedef std::map< unsigned int, boost::shared_ptr<VERTEX_ITEM> > GROUPS_MAP;
> + typedef std::map< unsigned int, std::shared_ptr<VERTEX_ITEM> > GROUPS_MAP;
> GROUPS_MAP groups; ///< Stores informations about VBO objects (groups)
> unsigned int groupCounter; ///< Counter used for generating keys for groups
> VERTEX_MANAGER* currentManager; ///< Currently used VERTEX_MANAGER (for storing VERTEX_ITEMs)
> diff --git a/include/gal/opengl/vertex_manager.h b/include/gal/opengl/vertex_manager.h
> index f2d4fe5..09c089b 100644
> --- a/include/gal/opengl/vertex_manager.h
> +++ b/include/gal/opengl/vertex_manager.h
> @@ -37,7 +37,7 @@
> #include <gal/opengl/vertex_common.h>
> #include <gal/color4d.h>
> #include <stack>
> -#include <boost/smart_ptr/shared_ptr.hpp>
> +#include <memory>
> #include <wx/log.h>
>
> namespace KIGFX
> @@ -349,9 +349,9 @@ protected:
> void putVertex( VERTEX& aTarget, GLfloat aX, GLfloat aY, GLfloat aZ ) const;
>
> /// Container for vertices, may be cached or noncached
> - boost::shared_ptr<VERTEX_CONTAINER> m_container;
> + std::shared_ptr<VERTEX_CONTAINER> m_container;
> /// GPU manager for data transfers and drawing operations
> - boost::shared_ptr<GPU_MANAGER> m_gpu;
> + std::shared_ptr<GPU_MANAGER> m_gpu;
>
> /// State machine variables
> /// True in case there is no need to transform vertices
> diff --git a/include/painter.h b/include/painter.h
> index 727533c..cf586fa 100644
> --- a/include/painter.h
> +++ b/include/painter.h
> @@ -33,7 +33,7 @@
> #include <gal/color4d.h>
> #include <colors.h>
> #include <worksheet_shape_builder.h>
> -#include <boost/shared_ptr.hpp>
> +#include <memory>
>
> class EDA_ITEM;
> class COLORS_DESIGN_SETTINGS;
> diff --git a/include/ttl/halfedge/hetriang.h b/include/ttl/halfedge/hetriang.h
> index 1642e92..c29dfd2 100644
> --- a/include/ttl/halfedge/hetriang.h
> +++ b/include/ttl/halfedge/hetriang.h
> @@ -50,8 +50,7 @@
> #include <iostream>
> #include <fstream>
> #include <ttl/ttl_util.h>
> -#include <boost/shared_ptr.hpp>
> -#include <boost/weak_ptr.hpp>
> +#include <memory>
> #include <layers_id_colors_and_visibility.h>
>
> class BOARD_CONNECTED_ITEM;
> @@ -69,9 +68,9 @@ namespace hed
> // Helper typedefs
> class NODE;
> class EDGE;
> -typedef boost::shared_ptr<NODE> NODE_PTR;
> -typedef boost::shared_ptr<EDGE> EDGE_PTR;
> -typedef boost::weak_ptr<EDGE> EDGE_WEAK_PTR;
> +typedef std::shared_ptr<NODE> NODE_PTR;
> +typedef std::shared_ptr<EDGE> EDGE_PTR;
> +typedef std::weak_ptr<EDGE> EDGE_WEAK_PTR;
> typedef std::vector<NODE_PTR> NODES_CONTAINER;
>
> /**
> diff --git a/pcbnew/class_board_connected_item.h b/pcbnew/class_board_connected_item.h
> index fea4554..2fa293d 100644
> --- a/pcbnew/class_board_connected_item.h
> +++ b/pcbnew/class_board_connected_item.h
> @@ -171,7 +171,7 @@ public:
> * Function GetNetClass
> * returns the NETCLASS for this item.
> */
> - boost::shared_ptr<NETCLASS> GetNetClass() const;
> + std::shared_ptr<NETCLASS> GetNetClass() const;
>
> /**
> * Function GetNetClassName
> diff --git a/pcbnew/class_netclass.cpp b/pcbnew/class_netclass.cpp
> index 26754f2..46bc606 100644
> --- a/pcbnew/class_netclass.cpp
> +++ b/pcbnew/class_netclass.cpp
> @@ -23,8 +23,6 @@
> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
> */
>
> -#include <boost/make_shared.hpp>
> -
> #include <fctsys.h>
> #include <common.h>
> #include <kicad_string.h>
> @@ -81,7 +79,7 @@ NETCLASS::~NETCLASS()
>
> NETCLASSES::NETCLASSES()
> {
> - m_Default = boost::make_shared<NETCLASS>( NETCLASS::Default );
> + m_Default = std::make_shared<NETCLASS>( NETCLASS::Default );
> }
>
>
> @@ -125,7 +123,7 @@ NETCLASSPTR NETCLASSES::Remove( const wxString& aNetName )
>
> if( found != m_NetClasses.end() )
> {
> - boost::shared_ptr<NETCLASS> netclass = found->second;
> + std::shared_ptr<NETCLASS> netclass = found->second;
> m_NetClasses.erase( found );
> return netclass;
> }
> diff --git a/pcbnew/class_netclass.h b/pcbnew/class_netclass.h
> index 5b6bbe1..658f182 100644
> --- a/pcbnew/class_netclass.h
> +++ b/pcbnew/class_netclass.h
> @@ -33,12 +33,13 @@
>
> #include <set>
> #include <map>
> -#include <boost/shared_ptr.hpp>
>
> #include <wx/string.h>
>
> #include <richio.h>
>
> +#include <memory>
> +
>
> class LINE_READER;
> class BOARD;
> @@ -206,7 +207,7 @@ public:
> #endif
> };
>
> -typedef boost::shared_ptr<NETCLASS> NETCLASSPTR;
> +typedef std::shared_ptr<NETCLASS> NETCLASSPTR;
>
> /**
> * Class NETCLASSES
> diff --git a/pcbnew/dialogs/dialog_design_rules.cpp b/pcbnew/dialogs/dialog_design_rules.cpp
> index 20a5643..8e72732 100644
> --- a/pcbnew/dialogs/dialog_design_rules.cpp
> +++ b/pcbnew/dialogs/dialog_design_rules.cpp
> @@ -47,8 +47,6 @@
> #include <wx/generic/gridctrl.h>
> #include <dialog_design_rules_aux_helper_class.h>
>
> -#include <boost/make_shared.hpp>
> -
> // Column labels for net lists
> #define NET_TITLE _( "Net" )
> #define CLASS_TITLE _( "Class" )
> @@ -505,7 +503,7 @@ void DIALOG_DESIGN_RULES::CopyRulesListToBoard()
> // Copy other NetClasses :
> for( int row = 1; row < m_grid->GetNumberRows(); ++row )
> {
> - NETCLASSPTR nc = boost::make_shared<NETCLASS>( m_grid->GetRowLabelValue( row ) );
> + NETCLASSPTR nc = std::make_shared<NETCLASS>( m_grid->GetRowLabelValue( row ) );
>
> if( !m_BrdSettings->m_NetClasses.Add( nc ) )
> {
> diff --git a/pcbnew/drc_stuff.h b/pcbnew/drc_stuff.h
> index b35c9b9..492f314 100644
> --- a/pcbnew/drc_stuff.h
> +++ b/pcbnew/drc_stuff.h
> @@ -30,7 +30,7 @@
> #define _DRC_STUFF_H
>
> #include <vector>
> -#include <boost/shared_ptr.hpp>
> +#include <memory>
>
> #define OK_DRC 0
> #define BAD_DRC 1
> @@ -289,7 +289,7 @@ private:
>
> //-----<single "item" tests>-----------------------------------------
>
> - bool doNetClass( boost::shared_ptr<NETCLASS> aNetClass, wxString& msg );
> + bool doNetClass( std::shared_ptr<NETCLASS> aNetClass, wxString& msg );
>
> /**
> * Function doPadToPadsDrc
> diff --git a/pcbnew/legacy_plugin.cpp b/pcbnew/legacy_plugin.cpp
> index b95081f..e277619 100644
> --- a/pcbnew/legacy_plugin.cpp
> +++ b/pcbnew/legacy_plugin.cpp
> @@ -87,8 +87,6 @@
> #include <trigo.h>
> #include <build_version.h>
>
> -#include <boost/make_shared.hpp>
> -
>
> typedef LEGACY_PLUGIN::BIU BIU;
>
> @@ -2408,7 +2406,7 @@ void LEGACY_PLUGIN::loadNETCLASS()
> // yet since that would bypass duplicate netclass name checking within the BOARD.
> // store it temporarily in an unique_ptr until successfully inserted into the BOARD
> // just before returning.
> - NETCLASSPTR nc = boost::make_shared<NETCLASS>( wxEmptyString );
> + NETCLASSPTR nc = std::make_shared<NETCLASS>( wxEmptyString );
>
> while( ( line = READLINE( m_reader ) ) != NULL )
> {
> diff --git a/pcbnew/legacy_plugin.h b/pcbnew/legacy_plugin.h
> index ddf5971..a1c21d0 100644
> --- a/pcbnew/legacy_plugin.h
> +++ b/pcbnew/legacy_plugin.h
> @@ -26,13 +26,15 @@
> */
>
> #include <io_mgr.h>
> -#include <boost/shared_ptr.hpp>
> #include <string>
> #include <layers_id_colors_and_visibility.h>
> +#include <memory>
> +
>
> // FOOTPRINT_LIBRARY_HEADER_CNT gives the number of characters to compare to detect
> // a footprint library. A few variants may have been used, and so we can only be
> // sure that the header contains "PCBNEW-LibModule-V", not "PCBNEW-LibModule-V1".
> +
> #define FOOTPRINT_LIBRARY_HEADER "PCBNEW-LibModule-V1"
> #define FOOTPRINT_LIBRARY_HEADER_CNT 18
>
> diff --git a/pcbnew/pcb_painter.h b/pcbnew/pcb_painter.h
> index c6ea211..06f0b8c 100644
> --- a/pcbnew/pcb_painter.h
> +++ b/pcbnew/pcb_painter.h
> @@ -27,9 +27,10 @@
> #define __CLASS_PCB_PAINTER_H
>
> #include <layers_id_colors_and_visibility.h>
> -#include <boost/shared_ptr.hpp>
> #include <painter.h>
>
> +#include <memory>
> +
>
> class EDA_ITEM;
> class COLORS_DESIGN_SETTINGS;
> diff --git a/pcbnew/pcb_parser.cpp b/pcbnew/pcb_parser.cpp
> index 63e955b..6478f7e 100644
> --- a/pcbnew/pcb_parser.cpp
> +++ b/pcbnew/pcb_parser.cpp
> @@ -51,8 +51,6 @@
> #include <zones.h>
> #include <pcb_parser.h>
>
> -#include <boost/make_shared.hpp>
> -
> using namespace PCB_KEYS_T;
>
>
> @@ -1264,7 +1262,7 @@ void PCB_PARSER::parseNETCLASS() throw( IO_ERROR, PARSE_ERROR )
>
> T token;
>
> - NETCLASSPTR nc = boost::make_shared<NETCLASS>( wxEmptyString );
> + NETCLASSPTR nc = std::make_shared<NETCLASS>( wxEmptyString );
>
> // Read netclass name (can be a name or just a number like track width)
> NeedSYMBOLorNUMBER();
> diff --git a/pcbnew/ratsnest_data.cpp b/pcbnew/ratsnest_data.cpp
> index 605baa9..f840ad2 100644
> --- a/pcbnew/ratsnest_data.cpp
> +++ b/pcbnew/ratsnest_data.cpp
> @@ -41,7 +41,6 @@
>
> #include <boost/range/adaptor/map.hpp>
> #include <boost/scoped_ptr.hpp>
> -#include <boost/make_shared.hpp>
> #include <functional>
> using namespace std::placeholders;
>
> @@ -184,9 +183,9 @@ static std::vector<RN_EDGE_MST_PTR>* kruskalMST( RN_LINKS::RN_EDGE_LIST& aEdges,
> // Do a copy of edge, but make it RN_EDGE_MST. In contrary to RN_EDGE,
> // RN_EDGE_MST saves both source and target node and does not require any other
> // edges to exist for getting source/target nodes
> - RN_EDGE_MST_PTR newEdge = boost::make_shared<RN_EDGE_MST>( dt->GetSourceNode(),
> - dt->GetTargetNode(),
> - dt->GetWeight() );
> + RN_EDGE_MST_PTR newEdge = std::make_shared<RN_EDGE_MST>( dt->GetSourceNode(),
> + dt->GetTargetNode(),
> + dt->GetWeight() );
> mst->push_back( newEdge );
> ++mstSize;
> }
> @@ -294,7 +293,7 @@ const RN_NODE_PTR& RN_LINKS::AddNode( int aX, int aY )
> RN_NODE_SET::iterator node;
> bool wasNewElement;
>
> - boost::tie( node, wasNewElement ) = m_nodes.emplace( boost::make_shared<RN_NODE>( aX, aY ) );
> + boost::tie( node, wasNewElement ) = m_nodes.emplace( std::make_shared<RN_NODE>( aX, aY ) );
>
> return *node;
> }
> @@ -317,7 +316,7 @@ RN_EDGE_MST_PTR RN_LINKS::AddConnection( const RN_NODE_PTR& aNode1, const RN_NOD
> unsigned int aDistance )
> {
> assert( aNode1 != aNode2 );
> - RN_EDGE_MST_PTR edge = boost::make_shared<RN_EDGE_MST>( aNode1, aNode2, aDistance );
> + RN_EDGE_MST_PTR edge = std::make_shared<RN_EDGE_MST>( aNode1, aNode2, aDistance );
> m_edges.push_back( edge );
>
> return edge;
> @@ -340,7 +339,7 @@ void RN_NET::compute()
> RN_LINKS::RN_NODE_SET::iterator last = ++boardNodes.begin();
>
> // There can be only one possible connection, but it is missing
> - m_rnEdges->push_back( boost::make_shared<RN_EDGE_MST>( *boardNodes.begin(), *last ) );
> + m_rnEdges->push_back( std::make_shared<RN_EDGE_MST>( *boardNodes.begin(), *last ) );
> }
>
> // Set tags to nodes as connected
> diff --git a/pcbnew/ratsnest_data.h b/pcbnew/ratsnest_data.h
> index ec996ba..9bae8fb 100644
> --- a/pcbnew/ratsnest_data.h
> +++ b/pcbnew/ratsnest_data.h
> @@ -68,7 +68,7 @@ typedef hed::EDGE RN_EDGE;
> typedef hed::EDGE_PTR RN_EDGE_PTR;
> typedef hed::EDGE_MST RN_EDGE_MST;
> typedef hed::TRIANGULATION TRIANGULATOR;
> -typedef boost::shared_ptr<hed::EDGE_MST> RN_EDGE_MST_PTR;
> +typedef std::shared_ptr<hed::EDGE_MST> RN_EDGE_MST_PTR;
>
> bool operator==( const RN_NODE_PTR& aFirst, const RN_NODE_PTR& aSecond );
> bool operator!=( const RN_NODE_PTR& aFirst, const RN_NODE_PTR& aSecond );
> @@ -576,7 +576,7 @@ protected:
> RN_LINKS m_links;
>
> ///> Vector of edges that makes ratsnest for a given net.
> - boost::shared_ptr< std::vector<RN_EDGE_MST_PTR> > m_rnEdges;
> + std::shared_ptr< std::vector<RN_EDGE_MST_PTR> > m_rnEdges;
>
> ///> List of nodes which will not be used as ratsnest target nodes.
> boost::unordered_set<RN_NODE_PTR> m_blockedNodes;
> diff --git a/pcbnew/router/pns_optimizer.h b/pcbnew/router/pns_optimizer.h
> index 36bced6..61a0923 100644
> --- a/pcbnew/router/pns_optimizer.h
> +++ b/pcbnew/router/pns_optimizer.h
> @@ -22,7 +22,7 @@
> #define __PNS_OPTIMIZER_H
>
> #include <boost/unordered_map.hpp>
> -#include <boost/shared_ptr.hpp>
> +#include <memory>
>
> #include <geometry/shape_index_list.h>
> #include <geometry/shape_line_chain.h>
> diff --git a/pcbnew/specctra.h b/pcbnew/specctra.h
> index aa072c2..723575e 100644
> --- a/pcbnew/specctra.h
> +++ b/pcbnew/specctra.h
> @@ -31,12 +31,13 @@
>
> // see http://www.boost.org/libs/ptr_container/doc/ptr_set.html
> #include <boost/ptr_container/ptr_set.hpp>
> -#include <boost/shared_ptr.hpp>
>
> #include <fctsys.h>
> #include <specctra_lexer.h>
> #include <pcbnew.h>
>
> +#include <memory>
> +
> // all outside the DSN namespace:
> class BOARD;
> class TRACK;
> @@ -3815,7 +3816,7 @@ class SPECCTRA_DB : public SPECCTRA_LEXER
> * Function exportNETCLASS
> * exports \a aNetClass to the DSN file.
> */
> - void exportNETCLASS( boost::shared_ptr<NETCLASS> aNetClass, BOARD* aBoard );
> + void exportNETCLASS( std::shared_ptr<NETCLASS> aNetClass, BOARD* aBoard );
>
> //-----</FromBOARD>------------------------------------------------------
>
> diff --git a/pcbnew/tools/edit_points.h b/pcbnew/tools/edit_points.h
> index ca9e373..b1d8166 100644
> --- a/pcbnew/tools/edit_points.h
> +++ b/pcbnew/tools/edit_points.h
> @@ -25,8 +25,6 @@
> #ifndef EDIT_POINTS_H_
> #define EDIT_POINTS_H_
>
> -#include <boost/shared_ptr.hpp>
> -
> #include <base_struct.h>
> #include <layers_id_colors_and_visibility.h>
>
> @@ -35,6 +33,9 @@
>
> #include "edit_constraints.h"
>
> +#include <memory>
> +
> +
> /**
> * Class EDIT_POINT
> *
> @@ -173,7 +174,7 @@ private:
> VECTOR2I m_position;
>
> ///> Constraint for the point, NULL if none
> - boost::shared_ptr<EDIT_CONSTRAINT<EDIT_POINT> > m_constraint;
> + std::shared_ptr<EDIT_CONSTRAINT<EDIT_POINT> > m_constraint;
> };
>
>
> @@ -291,7 +292,7 @@ private:
> EDIT_POINT& m_end; ///< End point for a line
>
> ///> Constraint for the point, NULL if none
> - boost::shared_ptr<EDIT_CONSTRAINT<EDIT_LINE> > m_constraint;
> + std::shared_ptr<EDIT_CONSTRAINT<EDIT_LINE> > m_constraint;
> };
>
>
> diff --git a/pcbnew/tools/point_editor.cpp b/pcbnew/tools/point_editor.cpp
> index 722df12..98d866c 100644
> --- a/pcbnew/tools/point_editor.cpp
> +++ b/pcbnew/tools/point_editor.cpp
> @@ -22,7 +22,6 @@
> * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
> */
>
> -#include <boost/make_shared.hpp>
> #include <functional>
> using namespace std::placeholders;
>
> @@ -71,9 +70,9 @@ enum DIMENSION_POINTS
> class EDIT_POINTS_FACTORY
> {
> public:
> - static boost::shared_ptr<EDIT_POINTS> Make( EDA_ITEM* aItem, KIGFX::GAL* aGal )
> + static std::shared_ptr<EDIT_POINTS> Make( EDA_ITEM* aItem, KIGFX::GAL* aGal )
> {
> - boost::shared_ptr<EDIT_POINTS> points = boost::make_shared<EDIT_POINTS>( aItem );
> + std::shared_ptr<EDIT_POINTS> points = std::make_shared<EDIT_POINTS>( aItem );
>
> // Generate list of edit points basing on the item type
> switch( aItem->Type() )
> diff --git a/pcbnew/tools/point_editor.h b/pcbnew/tools/point_editor.h
> index fc4c6a0..eb43e1b 100644
> --- a/pcbnew/tools/point_editor.h
> +++ b/pcbnew/tools/point_editor.h
> @@ -25,11 +25,12 @@
> #ifndef __POINT_EDITOR_H
> #define __POINT_EDITOR_H
>
> -#include <boost/shared_ptr.hpp>
> -
> #include <tool/tool_interactive.h>
> #include "edit_points.h"
>
> +#include <memory>
> +
> +
> class SELECTION_TOOL;
>
> /**
> @@ -69,10 +70,10 @@ private:
> EDIT_POINT m_original;
>
> ///> Currently available edit points.
> - boost::shared_ptr<EDIT_POINTS> m_editPoints;
> + std::shared_ptr<EDIT_POINTS> m_editPoints;
>
> // Alternative constraint, enabled while a modifier key is held
> - boost::shared_ptr<EDIT_CONSTRAINT<EDIT_POINT> > m_altConstraint;
> + std::shared_ptr<EDIT_CONSTRAINT<EDIT_POINT> > m_altConstraint;
>
> // EDIT_POINT for alternative constraint mode
> EDIT_POINT m_altConstrainer;
> diff --git a/pcbnew/tools/selection_tool.cpp b/pcbnew/tools/selection_tool.cpp
> index 1d46e72..5eab61b 100644
> --- a/pcbnew/tools/selection_tool.cpp
> +++ b/pcbnew/tools/selection_tool.cpp
> @@ -781,7 +781,7 @@ void SELECTION_TOOL::clearSelection()
> BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector )
> {
> BOARD_ITEM* current = NULL;
> - boost::shared_ptr<BRIGHT_BOX> brightBox;
> + std::shared_ptr<BRIGHT_BOX> brightBox;
> CONTEXT_MENU menu;
>
> int limit = std::min( 10, aCollector->GetCount() );
>
References