refactoring: wrapped boost::optional in OPT<> class for the purpose of easier transition to C++17 in the future

This commit is contained in:
Tomasz Włostowski 2017-11-01 12:14:16 +01:00
parent 3292d622c1
commit 9932ff32ae
65 changed files with 187 additions and 190 deletions

View File

@ -23,6 +23,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include <algorithm>
#include <commit.h> #include <commit.h>
#include <base_struct.h> #include <base_struct.h>

View File

@ -22,11 +22,11 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include <algorithm>
#include <geometry/shape_line_chain.h> #include <geometry/shape_line_chain.h>
#include <geometry/shape_circle.h> #include <geometry/shape_circle.h>
using boost::optional;
bool SHAPE_LINE_CHAIN::Collide( const VECTOR2I& aP, int aClearance ) const bool SHAPE_LINE_CHAIN::Collide( const VECTOR2I& aP, int aClearance ) const
{ {
// fixme: ugly! // fixme: ugly!
@ -366,7 +366,7 @@ bool SHAPE_LINE_CHAIN::PointOnEdge( const VECTOR2I& aP ) const
} }
const optional<SHAPE_LINE_CHAIN::INTERSECTION> SHAPE_LINE_CHAIN::SelfIntersecting() const const OPT<SHAPE_LINE_CHAIN::INTERSECTION> SHAPE_LINE_CHAIN::SelfIntersecting() const
{ {
for( int s1 = 0; s1 < SegmentCount(); s1++ ) for( int s1 = 0; s1 < SegmentCount(); s1++ )
{ {
@ -410,7 +410,7 @@ const optional<SHAPE_LINE_CHAIN::INTERSECTION> SHAPE_LINE_CHAIN::SelfIntersectin
} }
} }
return optional<INTERSECTION>(); return OPT<SHAPE_LINE_CHAIN::INTERSECTION>();
} }

View File

@ -25,6 +25,8 @@
#include <tool/tool_action.h> #include <tool/tool_action.h>
#include <tool/action_manager.h> #include <tool/action_manager.h>
#include <algorithm>
TOOL_ACTION::TOOL_ACTION( const std::string& aName, TOOL_ACTION_SCOPE aScope, TOOL_ACTION::TOOL_ACTION( const std::string& aName, TOOL_ACTION_SCOPE aScope,
int aDefaultHotKey, const wxString aMenuItem, const wxString& aMenuDesc, int aDefaultHotKey, const wxString aMenuItem, const wxString& aMenuDesc,
const BITMAP_OPAQUE* aIcon, TOOL_ACTION_FLAGS aFlags, void* aParam ) : const BITMAP_OPAQUE* aIcon, TOOL_ACTION_FLAGS aFlags, void* aParam ) :

View File

@ -35,7 +35,7 @@
#include <class_draw_panel_gal.h> #include <class_draw_panel_gal.h>
#include <pcbnew_id.h> #include <pcbnew_id.h>
#include <boost/optional.hpp> #include <core/optional.h>
///> Stores information about a mouse button state ///> Stores information about a mouse button state
struct TOOL_DISPATCHER::BUTTON_STATE struct TOOL_DISPATCHER::BUTTON_STATE
@ -154,7 +154,7 @@ bool TOOL_DISPATCHER::handleMouseButton( wxEvent& aEvent, int aIndex, bool aMoti
{ {
BUTTON_STATE* st = m_buttons[aIndex]; BUTTON_STATE* st = m_buttons[aIndex];
wxEventType type = aEvent.GetEventType(); wxEventType type = aEvent.GetEventType();
boost::optional<TOOL_EVENT> evt; OPT<TOOL_EVENT> evt;
bool isClick = false; bool isClick = false;
// bool up = type == st->upEvent; // bool up = type == st->upEvent;
@ -307,7 +307,7 @@ int translateSpecialCode( int aKeyCode )
void TOOL_DISPATCHER::DispatchWxEvent( wxEvent& aEvent ) void TOOL_DISPATCHER::DispatchWxEvent( wxEvent& aEvent )
{ {
bool motion = false, buttonEvents = false; bool motion = false, buttonEvents = false;
boost::optional<TOOL_EVENT> evt; OPT<TOOL_EVENT> evt;
int key = 0; // key = 0 if the event is not a key event int key = 0; // key = 0 if the event is not a key event
bool keyIsSpecial = false; // True if the key is a special key code bool keyIsSpecial = false; // True if the key is a special key code
@ -436,7 +436,7 @@ void TOOL_DISPATCHER::DispatchWxEvent( wxEvent& aEvent )
void TOOL_DISPATCHER::DispatchWxCommand( wxCommandEvent& aEvent ) void TOOL_DISPATCHER::DispatchWxCommand( wxCommandEvent& aEvent )
{ {
boost::optional<TOOL_EVENT> evt = m_actions->TranslateLegacyId( aEvent.GetId() ); OPT<TOOL_EVENT> evt = m_actions->TranslateLegacyId( aEvent.GetId() );
if( evt ) if( evt )
m_toolMgr->ProcessEvent( *evt ); m_toolMgr->ProcessEvent( *evt );

View File

@ -27,7 +27,7 @@
#include <stack> #include <stack>
#include <algorithm> #include <algorithm>
#include <boost/optional.hpp> #include <core/optional.h>
#include <wx/event.h> #include <wx/event.h>
#include <wx/clipbrd.h> #include <wx/clipbrd.h>
@ -44,8 +44,6 @@
#include <wxPcbStruct.h> #include <wxPcbStruct.h>
#include <class_draw_panel_gal.h> #include <class_draw_panel_gal.h>
using boost::optional;
/// Struct describing the current execution state of a TOOL /// Struct describing the current execution state of a TOOL
struct TOOL_MANAGER::TOOL_STATE struct TOOL_MANAGER::TOOL_STATE
{ {
@ -494,7 +492,7 @@ void TOOL_MANAGER::RunMainStack( TOOL_BASE* aTool, std::function<void()> aFunc )
} }
optional<TOOL_EVENT> TOOL_MANAGER::ScheduleWait( TOOL_BASE* aTool, OPT<TOOL_EVENT> TOOL_MANAGER::ScheduleWait( TOOL_BASE* aTool,
const TOOL_EVENT_LIST& aConditions ) const TOOL_EVENT_LIST& aConditions )
{ {
TOOL_STATE* st = m_toolState[aTool]; TOOL_STATE* st = m_toolState[aTool];
@ -632,7 +630,6 @@ bool TOOL_MANAGER::dispatchActivation( const TOOL_EVENT& aEvent )
return false; return false;
} }
void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent ) void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent )
{ {
// Store the current tool ID to decide whether to restore the cursor position // Store the current tool ID to decide whether to restore the cursor position
@ -703,10 +700,10 @@ void TOOL_MANAGER::dispatchContextMenu( const TOOL_EVENT& aEvent )
if( activeTool == GetCurrentToolId() ) if( activeTool == GetCurrentToolId() )
{ {
m_viewControls->ForceCursorPosition( (bool) m_origCursor, m_viewControls->ForceCursorPosition( (bool) m_origCursor,
m_origCursor.get_value_or( VECTOR2D( 0, 0 ) ) ); m_origCursor.value_or( VECTOR2D( 0, 0 ) ) );
} }
m_origCursor = boost::none; m_origCursor = NULLOPT;
break; break;
} }
} }

View File

@ -29,8 +29,6 @@
#include <base_units.h> #include <base_units.h>
#include <wx/valnum.h> #include <wx/valnum.h>
#include <boost/optional.hpp>
#include "wx_unit_binder.h" #include "wx_unit_binder.h"
WX_UNIT_BINDER::WX_UNIT_BINDER( wxWindow* aParent, wxTextEntry* aTextInput, WX_UNIT_BINDER::WX_UNIT_BINDER( wxWindow* aParent, wxTextEntry* aTextInput,

View File

@ -29,7 +29,7 @@
#include <limits> #include <limits>
#include <base_units.h> #include <base_units.h>
#include <wx/valnum.h> #include <wx/valnum.h>
#include <boost/optional.hpp> #include <core/optional.h>
WX_UNIT_TEXT::WX_UNIT_TEXT( wxWindow* aParent, const wxString& aLabel, double aValue, double aStep ) : WX_UNIT_TEXT::WX_UNIT_TEXT( wxWindow* aParent, const wxString& aLabel, double aValue, double aStep ) :
wxPanel( aParent, wxID_ANY ), wxPanel( aParent, wxID_ANY ),
@ -109,18 +109,18 @@ void WX_UNIT_TEXT::SetValue( double aValue )
} }
boost::optional<double> WX_UNIT_TEXT::GetValue() const OPT<double> WX_UNIT_TEXT::GetValue() const
{ {
wxString text = m_inputValue->GetValue(); wxString text = m_inputValue->GetValue();
double value; double value;
if( text == DEFAULT_VALUE ) if( text == DEFAULT_VALUE )
return boost::optional<double>( -1.0 ); return OPT<double>( -1.0 );
if( !text.ToDouble( &value ) ) if( !text.ToDouble( &value ) )
return boost::optional<double>(); return OPT<double>();
return boost::optional<double>( value ); return OPT<double>( value );
} }

View File

@ -36,7 +36,7 @@ void GERBVIEW_ACTIONS::RegisterAllTools( TOOL_MANAGER* aToolManager )
aToolManager->RegisterTool( new ZOOM_TOOL ); aToolManager->RegisterTool( new ZOOM_TOOL );
} }
boost::optional<TOOL_EVENT> GERBVIEW_ACTIONS::TranslateLegacyId( int aId ) OPT<TOOL_EVENT> GERBVIEW_ACTIONS::TranslateLegacyId( int aId )
{ {
switch( aId ) switch( aId )
{ {
@ -72,5 +72,5 @@ boost::optional<TOOL_EVENT> GERBVIEW_ACTIONS::TranslateLegacyId( int aId )
break; break;
} }
return boost::optional<TOOL_EVENT>(); return OPT<TOOL_EVENT>();
} }

View File

@ -23,7 +23,7 @@
#include <tool/tool_action.h> #include <tool/tool_action.h>
#include <tool/actions.h> #include <tool/actions.h>
#include <boost/optional.hpp> #include <core/optional.h>
class TOOL_EVENT; class TOOL_EVENT;
class TOOL_MANAGER; class TOOL_MANAGER;
@ -130,7 +130,7 @@ public:
static TOOL_ACTION highlightAttribute; static TOOL_ACTION highlightAttribute;
///> @copydoc COMMON_ACTIONS::TranslateLegacyId() ///> @copydoc COMMON_ACTIONS::TranslateLegacyId()
virtual boost::optional<TOOL_EVENT> TranslateLegacyId( int aId ) override; virtual OPT<TOOL_EVENT> TranslateLegacyId( int aId ) override;
///> @copydoc COMMON_ACTIONS::RegisterAllTools() ///> @copydoc COMMON_ACTIONS::RegisterAllTools()
virtual void RegisterAllTools( TOOL_MANAGER* aToolManager ) override; virtual void RegisterAllTools( TOOL_MANAGER* aToolManager ) override;

View File

@ -692,7 +692,7 @@ EDA_ITEM* GERBVIEW_SELECTION_TOOL::disambiguationMenu( GERBER_COLLECTOR* aCollec
} }
else if( evt->Action() == TA_CONTEXT_MENU_CHOICE ) else if( evt->Action() == TA_CONTEXT_MENU_CHOICE )
{ {
boost::optional<int> id = evt->GetCommandId(); OPT<int> id = evt->GetCommandId();
// User has selected an item, so this one will be returned // User has selected an item, so this one will be returned
if( id && ( *id > 0 ) ) if( id && ( *id > 0 ) )

11
include/core/optional.h Normal file
View File

@ -0,0 +1,11 @@
# ifndef ___OPTIONAL_H___
# define ___OPTIONAL_H___
#include <boost/optional.hpp>
template<typename T>
using OPT = boost::optional<T>;
const auto NULLOPT = boost::none;
# endif //___OPTIONAL_HPP___

View File

@ -179,7 +179,7 @@ T Convert( const wxString& aValue )
/** /**
* Class OPTIONAL_XML_ATTRIBUTE * Class OPTIONAL_XML_ATTRIBUTE
* models an optional XML attribute. * models an optional XML attribute.
* This was implemented as an alternative to boost::optional. This class should be replaced with a * This was implemented as an alternative to OPT. This class should be replaced with a
* simple typedef per type using std::optional when C++17 is published. * simple typedef per type using std::optional when C++17 is published.
*/ */
template <class T> template <class T>

View File

@ -30,6 +30,8 @@
#define STROKE_FONT_H_ #define STROKE_FONT_H_
#include <deque> #include <deque>
#include <algorithm>
#include <utf8.h> #include <utf8.h>
#include <eda_text.h> #include <eda_text.h>

View File

@ -29,10 +29,9 @@
#include <climits> #include <climits>
#include <math/vector2d.h> #include <math/vector2d.h>
#include <core/optional.h>
#include <boost/optional/optional.hpp> typedef OPT<VECTOR2I> OPT_VECTOR2I;
typedef boost::optional<VECTOR2I> OPT_VECTOR2I;
class SEG class SEG
{ {

View File

@ -25,8 +25,6 @@
#ifndef __SHAPE_INDEX_LIST_H #ifndef __SHAPE_INDEX_LIST_H
#define __SHAPE_INDEX_LIST_H #define __SHAPE_INDEX_LIST_H
#include <boost/unordered_map.hpp>
template <class T> template <class T>
const SHAPE* defaultShapeFunctor( const T aItem ) const SHAPE* defaultShapeFunctor( const T aItem )
{ {

View File

@ -29,7 +29,7 @@
#include <vector> #include <vector>
#include <sstream> #include <sstream>
#include <boost/optional.hpp> #include <core/optional.h>
#include <math/vector2d.h> #include <math/vector2d.h>
#include <geometry/shape.h> #include <geometry/shape.h>
@ -538,7 +538,7 @@ public:
* Checks if the line chain is self-intersecting. * Checks if the line chain is self-intersecting.
* @return (optional) first found self-intersection point. * @return (optional) first found self-intersection point.
*/ */
const boost::optional<INTERSECTION> SelfIntersecting() const; const OPT<INTERSECTION> SelfIntersecting() const;
/** /**
* Function Simplify() * Function Simplify()

View File

@ -30,7 +30,7 @@
#include <math/vector2d.h> #include <math/vector2d.h>
#include <limits> #include <limits>
#include <boost/optional.hpp> #include <core/optional.h>
/** /**
* Class BOX2 * Class BOX2
@ -468,7 +468,7 @@ public:
typedef BOX2<VECTOR2I> BOX2I; typedef BOX2<VECTOR2I> BOX2I;
typedef BOX2<VECTOR2D> BOX2D; typedef BOX2<VECTOR2D> BOX2D;
typedef boost::optional<BOX2I> OPT_BOX2I; typedef OPT<BOX2I> OPT_BOX2I;
// FIXME should be removed to avoid multiple typedefs for the same type // FIXME should be removed to avoid multiple typedefs for the same type
typedef BOX2D DBOX; typedef BOX2D DBOX;

View File

@ -27,7 +27,7 @@
#define __ACTIONS_H #define __ACTIONS_H
#include <tool/tool_action.h> #include <tool/tool_action.h>
#include <boost/optional.hpp> #include <core/optional.h>
class TOOL_EVENT; class TOOL_EVENT;
class TOOL_MANAGER; class TOOL_MANAGER;
@ -73,7 +73,7 @@ public:
* @return std::string is name of the corresponding TOOL_ACTION. It may be empty, if there is * @return std::string is name of the corresponding TOOL_ACTION. It may be empty, if there is
* no corresponding TOOL_ACTION. * no corresponding TOOL_ACTION.
*/ */
virtual boost::optional<TOOL_EVENT> TranslateLegacyId( int aId ) = 0; virtual OPT<TOOL_EVENT> TranslateLegacyId( int aId ) = 0;
///> Registers all valid tools for an application with the tool manager ///> Registers all valid tools for an application with the tool manager
virtual void RegisterAllTools( TOOL_MANAGER* aToolManager ) = 0; virtual void RegisterAllTools( TOOL_MANAGER* aToolManager ) = 0;

View File

@ -26,7 +26,6 @@
#define CONDITIONAL_MENU_H #define CONDITIONAL_MENU_H
#include "selection_conditions.h" #include "selection_conditions.h"
#include <boost/unordered_map.hpp>
#include <list> #include <list>
#include <wx/wx.h> #include <wx/wx.h>

View File

@ -172,7 +172,7 @@ public:
bool HasReferencePoint() const bool HasReferencePoint() const
{ {
return m_referencePoint != boost::none; return m_referencePoint != NULLOPT;
} }
VECTOR2I GetReferencePoint() const VECTOR2I GetReferencePoint() const
@ -187,12 +187,12 @@ public:
void ClearReferencePoint() void ClearReferencePoint()
{ {
m_referencePoint = boost::none; m_referencePoint = NULLOPT;
} }
private: private:
boost::optional<VECTOR2I> m_referencePoint; OPT<VECTOR2I> m_referencePoint;
/// Set of selected items /// Set of selected items
std::set<EDA_ITEM*> m_items; std::set<EDA_ITEM*> m_items;

View File

@ -32,7 +32,7 @@
#include <math/vector2d.h> #include <math/vector2d.h>
#include <cassert> #include <cassert>
#include <boost/optional.hpp> #include <core/optional.h>
class TOOL_ACTION; class TOOL_ACTION;
class TOOL_MANAGER; class TOOL_MANAGER;
@ -387,12 +387,12 @@ public:
m_param = (void*) aParam; m_param = (void*) aParam;
} }
boost::optional<int> GetCommandId() const OPT<int> GetCommandId() const
{ {
return m_commandId; return m_commandId;
} }
boost::optional<std::string> GetCommandStr() const OPT<std::string> GetCommandStr() const
{ {
return m_commandStr; return m_commandStr;
} }
@ -453,11 +453,11 @@ private:
///> Generic parameter used for passing non-standard data. ///> Generic parameter used for passing non-standard data.
void* m_param; void* m_param;
boost::optional<int> m_commandId; OPT<int> m_commandId;
boost::optional<std::string> m_commandStr; OPT<std::string> m_commandStr;
}; };
typedef boost::optional<TOOL_EVENT> OPT_TOOL_EVENT; typedef OPT<TOOL_EVENT> OPT_TOOL_EVENT;
/** /**
* Class TOOL_EVENT_LIST * Class TOOL_EVENT_LIST
@ -490,13 +490,13 @@ public:
*/ */
const std::string Format() const; const std::string Format() const;
boost::optional<const TOOL_EVENT&> Matches( const TOOL_EVENT& aEvent ) const OPT<const TOOL_EVENT&> Matches( const TOOL_EVENT& aEvent ) const
{ {
for( const_iterator i = m_events.begin(); i != m_events.end(); ++i ) for( const_iterator i = m_events.begin(); i != m_events.end(); ++i )
if( i->Matches( aEvent ) ) if( i->Matches( aEvent ) )
return *i; return *i;
return boost::optional<const TOOL_EVENT&>(); return OPT<const TOOL_EVENT&>();
} }
/** /**

View File

@ -329,7 +329,7 @@ public:
* The pause/resume operation is done through COROUTINE object. * The pause/resume operation is done through COROUTINE object.
* Called only from coroutines. * Called only from coroutines.
*/ */
boost::optional<TOOL_EVENT> ScheduleWait( TOOL_BASE* aTool, OPT<TOOL_EVENT> ScheduleWait( TOOL_BASE* aTool,
const TOOL_EVENT_LIST& aConditions ); const TOOL_EVENT_LIST& aConditions );
/** /**
@ -514,7 +514,7 @@ private:
ACTION_MANAGER* m_actionMgr; ACTION_MANAGER* m_actionMgr;
/// Original cursor position, if overridden by the context menu handler /// Original cursor position, if overridden by the context menu handler
boost::optional<VECTOR2D> m_origCursor; OPT<VECTOR2D> m_origCursor;
EDA_ITEM* m_model; EDA_ITEM* m_model;
KIGFX::VIEW* m_view; KIGFX::VIEW* m_view;

View File

@ -80,7 +80,7 @@ public:
* Function GetValue * Function GetValue
* Returns the current value in currently used units. * Returns the current value in currently used units.
*/ */
virtual boost::optional<double> GetValue() const; virtual OPT<double> GetValue() const;
/** /**
* Function GetUnits * Function GetUnits

View File

@ -381,8 +381,7 @@ bool D_PAD::GetBestAnchorPosition( VECTOR2I& aPos )
minDistEdge = std::max( GetSize().x, GetSize().y ); minDistEdge = std::max( GetSize().x, GetSize().y );
} }
boost::optional<VECTOR2I> bestAnchor( []()-> OPT<VECTOR2I> bestAnchor;
boost::optional<VECTOR2I>{ return boost::none; }() );
for ( int y = 0; y < stepsY ; y++ ) for ( int y = 0; y < stepsY ; y++ )
{ {

View File

@ -47,16 +47,16 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen
wxASSERT( !m_items.Empty() ); wxASSERT( !m_items.Empty() );
// This is a way to trick gcc into considering these variables as initialized // This is a way to trick gcc into considering these variables as initialized
boost::optional<int> trackStartX = boost::make_optional<int>( false, 0 ); OPT<int> trackStartX = NULLOPT;
boost::optional<int> trackStartY = boost::make_optional<int>( false, 0 ); OPT<int> trackStartY = NULLOPT;
boost::optional<int> trackEndX = boost::make_optional<int>( false, 0 ); OPT<int> trackEndX = NULLOPT;
boost::optional<int> trackEndY = boost::make_optional<int>( false, 0 ); OPT<int> trackEndY = NULLOPT;
boost::optional<int> trackWidth = boost::make_optional<int>( false, 0 ); OPT<int> trackWidth = NULLOPT;
boost::optional<PCB_LAYER_ID> trackLayer = boost::make_optional<PCB_LAYER_ID>( false, (PCB_LAYER_ID) 0 ); OPT<PCB_LAYER_ID> trackLayer = NULLOPT;
boost::optional<int> viaX = boost::make_optional<int>( false, 0 ); OPT<int> viaX = NULLOPT;
boost::optional<int> viaY = boost::make_optional<int>( false, 0 ); OPT<int> viaY = NULLOPT;
boost::optional<int> viaDiameter = boost::make_optional<int>( false, 0 ); OPT<int> viaDiameter = NULLOPT;
boost::optional<int> viaDrill = boost::make_optional<int>( false, 0 ); OPT<int> viaDrill = NULLOPT;
m_haveUniqueNet = true; m_haveUniqueNet = true;
int prevNet = -1; int prevNet = -1;
@ -112,22 +112,22 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen
else // check if values are the same for every selected track else // check if values are the same for every selected track
{ {
if( trackStartX && ( *trackStartX != t->GetStart().x ) ) if( trackStartX && ( *trackStartX != t->GetStart().x ) )
trackStartX = boost::none; trackStartX = NULLOPT;
if( trackStartY && ( *trackStartY != t->GetStart().y ) ) if( trackStartY && ( *trackStartY != t->GetStart().y ) )
trackStartY = boost::none; trackStartY = NULLOPT;
if( trackEndX && ( *trackEndX != t->GetEnd().x ) ) if( trackEndX && ( *trackEndX != t->GetEnd().x ) )
trackEndX = boost::none; trackEndX = NULLOPT;
if( trackEndY && ( *trackEndY != t->GetEnd().y ) ) if( trackEndY && ( *trackEndY != t->GetEnd().y ) )
trackEndY = boost::none; trackEndY = NULLOPT;
if( trackWidth && ( *trackWidth != t->GetWidth() ) ) if( trackWidth && ( *trackWidth != t->GetWidth() ) )
trackWidth = boost::none; trackWidth = NULLOPT;
if( trackLayer && ( *trackLayer != t->GetLayer() ) ) if( trackLayer && ( *trackLayer != t->GetLayer() ) )
trackLayer = boost::none; trackLayer = NULLOPT;
} }
if( t->IsLocked() ) if( t->IsLocked() )
@ -153,16 +153,16 @@ DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParen
else // check if values are the same for every selected via else // check if values are the same for every selected via
{ {
if( viaX && ( *viaX != v->GetPosition().x ) ) if( viaX && ( *viaX != v->GetPosition().x ) )
viaX = boost::none; viaX = NULLOPT;
if( viaY && ( *viaY != v->GetPosition().y ) ) if( viaY && ( *viaY != v->GetPosition().y ) )
viaY = boost::none; viaY = NULLOPT;
if( viaDiameter && ( *viaDiameter != v->GetWidth() ) ) if( viaDiameter && ( *viaDiameter != v->GetWidth() ) )
viaDiameter = boost::none; viaDiameter = NULLOPT;
if( viaDrill && ( *viaDrill != v->GetDrillValue() ) ) if( viaDrill && ( *viaDrill != v->GetDrillValue() ) )
viaDrill = boost::none; viaDrill = NULLOPT;
} }
if( v->IsLocked() ) if( v->IsLocked() )

View File

@ -24,7 +24,7 @@
#include <dialogs/dialog_track_via_properties_base.h> #include <dialogs/dialog_track_via_properties_base.h>
#include <wx_unit_binder.h> #include <wx_unit_binder.h>
#include <boost/optional.hpp> #include <core/optional.h>
#include <layers_id_colors_and_visibility.h> #include <layers_id_colors_and_visibility.h>
class SELECTION; class SELECTION;
@ -61,9 +61,9 @@ private:
///> Checks if the dialog values are correct. ///> Checks if the dialog values are correct.
bool check() const; bool check() const;
///> Sets wxTextEntry to the value stored in boost::optional<T> or "<...>" if it is not available. ///> Sets wxTextEntry to the value stored in OPT<T> or "<...>" if it is not available.
template<typename T> template<typename T>
void setCommonVal( const boost::optional<T>& aVal, wxTextEntry* aTxtEntry, WX_UNIT_BINDER& aBinder ) void setCommonVal( const OPT<T>& aVal, wxTextEntry* aTxtEntry, WX_UNIT_BINDER& aBinder )
{ {
if( aVal ) if( aVal )
aBinder.SetValue( *aVal ); aBinder.SetValue( *aVal );

View File

@ -25,7 +25,7 @@
#include "dialog_track_via_size.h" #include "dialog_track_via_size.h"
#include <base_units.h> #include <base_units.h>
#include <confirm.h> #include <confirm.h>
#include <boost/optional.hpp> #include <core/optional.h>
#include "class_board_design_settings.h" #include "class_board_design_settings.h"

View File

@ -96,10 +96,10 @@ static wxString getFilterString()
// Tries to guess the plugin type basing on the path // Tries to guess the plugin type basing on the path
static boost::optional<IO_MGR::PCB_FILE_T> getPluginType( const wxString& aPath ) static OPT<IO_MGR::PCB_FILE_T> getPluginType( const wxString& aPath )
{ {
if( ( aPath.StartsWith( "http://" ) || aPath.StartsWith( "https://" ) ) ) if( ( aPath.StartsWith( "http://" ) || aPath.StartsWith( "https://" ) ) )
return boost::optional<IO_MGR::PCB_FILE_T>( IO_MGR::GITHUB ); return OPT<IO_MGR::PCB_FILE_T>( IO_MGR::GITHUB );
wxFileName path( aPath ); wxFileName path( aPath );
@ -127,10 +127,10 @@ static boost::optional<IO_MGR::PCB_FILE_T> getPluginType( const wxString& aPath
} }
if( ok ) if( ok )
return boost::optional<IO_MGR::PCB_FILE_T>( fileFilters[i].m_Plugin ); return OPT<IO_MGR::PCB_FILE_T>( fileFilters[i].m_Plugin );
} }
return boost::none; return NULLOPT;
} }
@ -139,7 +139,7 @@ static bool passesFilter( const wxString& aFileName, int aFilterIndex )
{ {
wxASSERT( aFilterIndex <= FILTER_COUNT ); wxASSERT( aFilterIndex <= FILTER_COUNT );
wxFileName file( aFileName ); wxFileName file( aFileName );
boost::optional<IO_MGR::PCB_FILE_T> result = getPluginType( aFileName ); OPT<IO_MGR::PCB_FILE_T> result = getPluginType( aFileName );
if( !result ) // does not match any supported plugin if( !result ) // does not match any supported plugin
return false; return false;

View File

@ -26,7 +26,7 @@
#include <wizard_add_fplib_base.h> #include <wizard_add_fplib_base.h>
#include <io_mgr.h> #include <io_mgr.h>
#include <boost/optional.hpp> #include <core/optional.h>
class KIWAY_PLAYER; class KIWAY_PLAYER;
@ -115,9 +115,9 @@ public:
/** /**
* Function GetPluginType * Function GetPluginType
* Returns the plugin type, autodetected basing on the path. * Returns the plugin type, autodetected basing on the path.
* @return Returns empty boost::optional if the type could not be autodetected. * @return Returns empty OPT if the type could not be autodetected.
*/ */
inline boost::optional<IO_MGR::PCB_FILE_T> GetPluginType() const inline OPT<IO_MGR::PCB_FILE_T> GetPluginType() const
{ {
return m_plugin; return m_plugin;
} }
@ -194,7 +194,7 @@ public:
wxString m_path; wxString m_path;
wxString m_description; wxString m_description;
boost::optional<IO_MGR::PCB_FILE_T> m_plugin; OPT<IO_MGR::PCB_FILE_T> m_plugin;
STATUS m_status; STATUS m_status;
friend class WIZARD_FPLIB_TABLE; friend class WIZARD_FPLIB_TABLE;

View File

@ -1085,7 +1085,7 @@ void EAGLE_PLUGIN::orientModuleText( MODULE* m, const EELEMENT& e,
txt->SetText( FROM_UTF8( a.value->c_str() ) ); txt->SetText( FROM_UTF8( a.value->c_str() ) );
} }
if( a.x && a.y ) // boost::optional if( a.x && a.y ) // OPT
{ {
wxPoint pos( kicad_x( *a.x ), kicad_y( *a.y ) ); wxPoint pos( kicad_x( *a.x ), kicad_y( *a.y ) );
txt->SetTextPos( pos ); txt->SetTextPos( pos );

View File

@ -47,7 +47,7 @@ class FP_THREAD_IFACE
public: public:
/// Retrieve a cache entry by LIB_ID /// Retrieve a cache entry by LIB_ID
boost::optional<CACHE_ENTRY> GetFromCache( LIB_ID const & aFPID ) OPT<CACHE_ENTRY> GetFromCache( LIB_ID const & aFPID )
{ {
MUTLOCK lock( m_lock ); MUTLOCK lock( m_lock );
auto it = m_cachedFootprints.find( aFPID ); auto it = m_cachedFootprints.find( aFPID );
@ -55,7 +55,7 @@ class FP_THREAD_IFACE
if( it != m_cachedFootprints.end() ) if( it != m_cachedFootprints.end() )
return it->second; return it->second;
else else
return boost::none; return NULLOPT;
} }
/** /**
@ -74,13 +74,13 @@ class FP_THREAD_IFACE
} }
/// Pop an entry from the queue, or empty option if none is available. /// Pop an entry from the queue, or empty option if none is available.
boost::optional<CACHE_ENTRY> PopFromQueue() OPT<CACHE_ENTRY> PopFromQueue()
{ {
MUTLOCK lock( m_lock ); MUTLOCK lock( m_lock );
if( m_loaderQueue.empty() ) if( m_loaderQueue.empty() )
{ {
return boost::none; return NULLOPT;
} }
else else
{ {

View File

@ -32,7 +32,7 @@
#include <gal/gal_display_options.h> #include <gal/gal_display_options.h>
#include <lib_id.h> #include <lib_id.h>
#include <kiway_player.h> #include <kiway_player.h>
#include <boost/optional.hpp> #include <core/optional.h>
#include <widgets/footprint_preview_widget.h> #include <widgets/footprint_preview_widget.h>

View File

@ -36,8 +36,7 @@
#include <common.h> // KiROUND #include <common.h> // KiROUND
#include <convert_to_biu.h> // IU_PER_MM #include <convert_to_biu.h> // IU_PER_MM
#include <boost/unordered_map.hpp> #include <unordered_map>
#include <boost/unordered_set.hpp>
class BOARD; class BOARD;
@ -65,8 +64,8 @@ struct LAYER;
*/ */
class PCB_PARSER : public PCB_LEXER class PCB_PARSER : public PCB_LEXER
{ {
typedef boost::unordered_map< std::string, PCB_LAYER_ID > LAYER_ID_MAP; typedef std::unordered_map< std::string, PCB_LAYER_ID > LAYER_ID_MAP;
typedef boost::unordered_map< std::string, LSET > LSET_MAP; typedef std::unordered_map< std::string, LSET > LSET_MAP;
BOARD* m_board; BOARD* m_board;
LAYER_ID_MAP m_layerIndices; ///< map layer name to it's index LAYER_ID_MAP m_layerIndices; ///< map layer name to it's index

View File

@ -19,7 +19,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <boost/optional.hpp> #include <core/optional.h>
#include "class_draw_panel_gal.h" #include "class_draw_panel_gal.h"
#include "class_board.h" #include "class_board.h"
@ -43,7 +43,6 @@
#include "length_tuner_tool.h" #include "length_tuner_tool.h"
using namespace KIGFX; using namespace KIGFX;
using boost::optional;
static TOOL_ACTION ACT_StartTuning( "pcbnew.LengthTuner.StartTuning", AS_CONTEXT, 'X', static TOOL_ACTION ACT_StartTuning( "pcbnew.LengthTuner.StartTuning", AS_CONTEXT, 'X',
_( "New Track" ), _( "Starts laying a new track." ) ); _( "New Track" ), _( "Starts laying a new track." ) );

View File

@ -690,9 +690,9 @@ void DP_GATEWAYS::BuildGeneric( const VECTOR2I& p0_p, const VECTOR2I& p0_n, bool
ips[1] = st_p[i].IntersectLines( st_n[j] ); ips[1] = st_p[i].IntersectLines( st_n[j] );
if( d_n[i].Collinear( d_p[j] ) ) if( d_n[i].Collinear( d_p[j] ) )
ips[0] = boost::none; ips[0] = OPT_VECTOR2I();
if( st_p[i].Collinear( st_p[j] ) ) if( st_p[i].Collinear( st_p[j] ) )
ips[1] = boost::none; ips[1] = OPT_VECTOR2I();
// diagonal-diagonal and straight-straight cases - the most typical case if the pads // diagonal-diagonal and straight-straight cases - the most typical case if the pads
// are on the same straight/diagonal line // are on the same straight/diagonal line

View File

@ -247,7 +247,7 @@ private:
int m_netP, m_netN; int m_netP, m_netN;
DP_PRIMITIVE_PAIR m_start; DP_PRIMITIVE_PAIR m_start;
boost::optional<DP_PRIMITIVE_PAIR> m_prevPair; OPT<DP_PRIMITIVE_PAIR> m_prevPair;
///> current algorithm iteration ///> current algorithm iteration
int m_iteration; int m_iteration;

View File

@ -19,7 +19,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <boost/optional.hpp> #include <core/optional.h>
#include <base_units.h> // God forgive me doing this... #include <base_units.h> // God forgive me doing this...
@ -33,8 +33,6 @@
namespace PNS { namespace PNS {
using boost::optional;
DP_MEANDER_PLACER::DP_MEANDER_PLACER( ROUTER* aRouter ) : DP_MEANDER_PLACER::DP_MEANDER_PLACER( ROUTER* aRouter ) :
MEANDER_PLACER_BASE( aRouter ) MEANDER_PLACER_BASE( aRouter )
{ {

View File

@ -24,6 +24,7 @@
#include <layers_id_colors_and_visibility.h> #include <layers_id_colors_and_visibility.h>
#include <map> #include <map>
#include <unordered_set>
#include <boost/range/adaptor/map.hpp> #include <boost/range/adaptor/map.hpp>
@ -47,7 +48,7 @@ class INDEX
public: public:
typedef std::list<ITEM*> NET_ITEMS_LIST; typedef std::list<ITEM*> NET_ITEMS_LIST;
typedef SHAPE_INDEX<ITEM*> ITEM_SHAPE_INDEX; typedef SHAPE_INDEX<ITEM*> ITEM_SHAPE_INDEX;
typedef boost::unordered_set<ITEM*> ITEM_SET; typedef std::unordered_set<ITEM*> ITEM_SET;
INDEX(); INDEX();
~INDEX(); ~INDEX();

View File

@ -23,7 +23,6 @@
#define __PNS_JOINT_H #define __PNS_JOINT_H
#include <vector> #include <vector>
#include <boost/functional/hash.hpp>
#include <math/vector2d.h> #include <math/vector2d.h>
@ -54,6 +53,20 @@ public:
int net; int net;
}; };
struct JOINT_TAG_HASH
{
std::size_t operator()( const JOINT::HASH_TAG& aP ) const
{
using std::size_t;
using std::hash;
using std::string;
return ( (hash<int>()( aP.pos.x )
^ (hash<int>()( aP.pos.y ) << 1) ) >> 1 )
^ (hash<int>()( aP.net ) << 1);
}
};
JOINT() : JOINT() :
ITEM( JOINT_T ), m_locked( false ) {} ITEM( JOINT_T ), m_locked( false ) {}
@ -249,16 +262,6 @@ inline bool operator==( JOINT::HASH_TAG const& aP1, JOINT::HASH_TAG const& aP2 )
return aP1.pos == aP2.pos && aP1.net == aP2.net; return aP1.pos == aP2.pos && aP1.net == aP2.net;
} }
inline std::size_t hash_value( JOINT::HASH_TAG const& aP )
{
std::size_t seed = 0;
boost::hash_combine( seed, aP.pos.x );
boost::hash_combine( seed, aP.pos.y );
boost::hash_combine( seed, aP.net );
return seed;
}
} }
#endif // __PNS_JOINT_H #endif // __PNS_JOINT_H

View File

@ -19,7 +19,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <boost/optional.hpp> #include <core/optional.h>
#include <math/vector2d.h> #include <math/vector2d.h>
@ -31,8 +31,6 @@
#include <geometry/shape_rect.h> #include <geometry/shape_rect.h>
using boost::optional;
namespace PNS { namespace PNS {
LINE::LINE( const LINE& aOther ) : LINE::LINE( const LINE& aOther ) :
@ -338,7 +336,7 @@ void LINE::ShowLinks() const
SHAPE_LINE_CHAIN dragCornerInternal( const SHAPE_LINE_CHAIN& aOrigin, const VECTOR2I& aP ) SHAPE_LINE_CHAIN dragCornerInternal( const SHAPE_LINE_CHAIN& aOrigin, const VECTOR2I& aP )
{ {
optional<SHAPE_LINE_CHAIN> picked; OPT<SHAPE_LINE_CHAIN> picked;
int i; int i;
int d = 2; int d = 2;

View File

@ -19,7 +19,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <boost/optional.hpp> #include <core/optional.h>
#include "pns_node.h" #include "pns_node.h"
#include "pns_line_placer.h" #include "pns_line_placer.h"
@ -32,8 +32,6 @@
#include <class_board_item.h> #include <class_board_item.h>
using boost::optional;
namespace PNS { namespace PNS {
LINE_PLACER::LINE_PLACER( ROUTER* aRouter ) : LINE_PLACER::LINE_PLACER( ROUTER* aRouter ) :

View File

@ -38,13 +38,11 @@
#include "pns_index.h" #include "pns_index.h"
#include "pns_router.h" #include "pns_router.h"
using boost::unordered_set;
using boost::unordered_map;
namespace PNS { namespace PNS {
#ifdef DEBUG #ifdef DEBUG
static boost::unordered_set<NODE*> allocNodes; static std::unordered_set<NODE*> allocNodes;
#endif #endif
NODE::NODE() NODE::NODE()
@ -1082,7 +1080,7 @@ void NODE::unlinkJoint( const VECTOR2I& aPos, const LAYER_RANGE& aLayers,
void NODE::Dump( bool aLong ) void NODE::Dump( bool aLong )
{ {
#if 0 #if 0
boost::unordered_set<SEGMENT*> all_segs; std::unordered_set<SEGMENT*> all_segs;
SHAPE_INDEX_LIST<ITEM*>::iterator i; SHAPE_INDEX_LIST<ITEM*>::iterator i;
for( i = m_items.begin(); i != m_items.end(); i++ ) for( i = m_items.begin(); i != m_items.end(); i++ )

View File

@ -24,10 +24,10 @@
#include <vector> #include <vector>
#include <list> #include <list>
#include <unordered_set>
#include <unordered_map>
#include <boost/unordered_set.hpp> #include <core/optional.h>
#include <boost/unordered_map.hpp>
#include <boost/optional.hpp>
#include <geometry/shape.h> #include <geometry/shape.h>
#include <geometry/shape_line_chain.h> #include <geometry/shape_line_chain.h>
@ -137,7 +137,7 @@ protected:
class NODE class NODE
{ {
public: public:
typedef boost::optional<OBSTACLE> OPT_OBSTACLE; typedef OPT<OBSTACLE> OPT_OBSTACLE;
typedef std::vector<ITEM*> ITEM_VECTOR; typedef std::vector<ITEM*> ITEM_VECTOR;
typedef std::vector<OBSTACLE> OBSTACLES; typedef std::vector<OBSTACLE> OBSTACLES;
@ -420,7 +420,7 @@ public:
private: private:
struct DEFAULT_OBSTACLE_VISITOR; struct DEFAULT_OBSTACLE_VISITOR;
typedef boost::unordered_multimap<JOINT::HASH_TAG, JOINT> JOINT_MAP; typedef std::unordered_multimap<JOINT::HASH_TAG, JOINT, JOINT::JOINT_TAG_HASH> JOINT_MAP;
typedef JOINT_MAP::value_type TagJointPair; typedef JOINT_MAP::value_type TagJointPair;
/// nodes are not copyable /// nodes are not copyable
@ -486,7 +486,7 @@ private:
std::set<NODE*> m_children; std::set<NODE*> m_children;
///> hash of root's items that have been changed in this node ///> hash of root's items that have been changed in this node
boost::unordered_set<ITEM*> m_override; std::unordered_set<ITEM*> m_override;
///> worst case item-item clearance ///> worst case item-item clearance
int m_maxClearance; int m_maxClearance;
@ -500,7 +500,7 @@ private:
///> depth of the node (number of parent nodes in the inheritance chain) ///> depth of the node (number of parent nodes in the inheritance chain)
int m_depth; int m_depth;
boost::unordered_set<ITEM*> m_garbageItems; std::unordered_set<ITEM*> m_garbageItems;
}; };
} }

View File

@ -22,7 +22,7 @@
#ifndef __PNS_OPTIMIZER_H #ifndef __PNS_OPTIMIZER_H
#define __PNS_OPTIMIZER_H #define __PNS_OPTIMIZER_H
#include <boost/unordered_map.hpp> #include <unordered_map>
#include <memory> #include <memory>
#include <geometry/shape_index_list.h> #include <geometry/shape_index_list.h>
@ -170,7 +170,7 @@ private:
SHAPE_INDEX_LIST<ITEM*> m_cache; SHAPE_INDEX_LIST<ITEM*> m_cache;
typedef boost::unordered_map<ITEM*, CACHED_ITEM> CachedItemTags; typedef std::unordered_map<ITEM*, CACHED_ITEM> CachedItemTags;
CachedItemTags m_cacheTags; CachedItemTags m_cacheTags;
NODE* m_world; NODE* m_world;
int m_collisionKindMask; int m_collisionKindMask;

View File

@ -25,7 +25,7 @@
#include <list> #include <list>
#include <memory> #include <memory>
#include <boost/optional.hpp> #include <core/optional.h>
#include <boost/unordered_set.hpp> #include <boost/unordered_set.hpp>
#include <geometry/shape_line_chain.h> #include <geometry/shape_line_chain.h>

View File

@ -87,7 +87,7 @@ public:
private: private:
typedef std::vector<SHAPE_LINE_CHAIN> HULL_SET; typedef std::vector<SHAPE_LINE_CHAIN> HULL_SET;
typedef boost::optional<LINE> OPT_LINE; typedef OPT<LINE> OPT_LINE;
typedef std::pair<LINE, LINE> LINE_PAIR; typedef std::pair<LINE, LINE> LINE_PAIR;
typedef std::vector<LINE_PAIR> LINE_PAIR_VEC; typedef std::vector<LINE_PAIR> LINE_PAIR_VEC;

View File

@ -23,7 +23,7 @@
#define __PNS_SIZES_SETTINGS_H #define __PNS_SIZES_SETTINGS_H
#include <map> #include <map>
#include <boost/optional.hpp> #include <core/optional.h>
#include "../class_track.h" // for VIATYPE_T #include "../class_track.h" // for VIATYPE_T
@ -82,10 +82,10 @@ public:
int ViaDrill() const { return m_viaDrill; } int ViaDrill() const { return m_viaDrill; }
void SetViaDrill( int aDrill ) { m_viaDrill = aDrill; } void SetViaDrill( int aDrill ) { m_viaDrill = aDrill; }
boost::optional<int> PairedLayer( int aLayerId ) OPT<int> PairedLayer( int aLayerId )
{ {
if( m_layerPairs.find(aLayerId) == m_layerPairs.end() ) if( m_layerPairs.find(aLayerId) == m_layerPairs.end() )
return boost::optional<int>(); return OPT<int>();
return m_layerPairs[aLayerId]; return m_layerPairs[aLayerId];
} }

View File

@ -141,14 +141,14 @@ const SHAPE_LINE_CHAIN ConvexHull( const SHAPE_CONVEX& aConvex, int aClearance )
SHAPE_LINE_CHAIN octagon; SHAPE_LINE_CHAIN octagon;
octagon.SetClosed( true ); octagon.SetClosed( true );
octagon.Append( leftline.IntersectLines( bottomleftline ).get() ); octagon.Append( *leftline.IntersectLines( bottomleftline ) );
octagon.Append( bottomline.IntersectLines( bottomleftline ).get() ); octagon.Append( *bottomline.IntersectLines( bottomleftline ) );
octagon.Append( bottomline.IntersectLines( bottomrightline ).get() ); octagon.Append( *bottomline.IntersectLines( bottomrightline ) );
octagon.Append( rightline.IntersectLines( bottomrightline ).get() ); octagon.Append( *rightline.IntersectLines( bottomrightline ) );
octagon.Append( rightline.IntersectLines( toprightline ).get() ); octagon.Append( *rightline.IntersectLines( toprightline ) );
octagon.Append( topline.IntersectLines( toprightline ).get() ); octagon.Append( *topline.IntersectLines( toprightline ) );
octagon.Append( topline.IntersectLines( topleftline ).get() ); octagon.Append( *topline.IntersectLines( topleftline ) );
octagon.Append( leftline.IntersectLines( topleftline ).get() ); octagon.Append( *leftline.IntersectLines( topleftline ) );
return octagon; return octagon;
} }

View File

@ -19,7 +19,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <boost/optional.hpp> #include <core/optional.h>
#include <geometry/shape_line_chain.h> #include <geometry/shape_line_chain.h>
@ -27,7 +27,6 @@
#include "pns_optimizer.h" #include "pns_optimizer.h"
#include "pns_utils.h" #include "pns_utils.h"
#include "pns_router.h" #include "pns_router.h"
using boost::optional;
namespace PNS { namespace PNS {
@ -55,7 +54,7 @@ NODE::OPT_OBSTACLE WALKAROUND::nearestObstacle( const LINE& aPath )
WALKAROUND::WALKAROUND_STATUS WALKAROUND::singleStep( LINE& aPath, WALKAROUND::WALKAROUND_STATUS WALKAROUND::singleStep( LINE& aPath,
bool aWindingDirection ) bool aWindingDirection )
{ {
optional<OBSTACLE>& current_obs = OPT<OBSTACLE>& current_obs =
aWindingDirection ? m_currentObstacle[0] : m_currentObstacle[1]; aWindingDirection ? m_currentObstacle[0] : m_currentObstacle[1];
bool& prev_recursive = aWindingDirection ? m_recursiveCollision[0] : m_recursiveCollision[1]; bool& prev_recursive = aWindingDirection ? m_recursiveCollision[0] : m_recursiveCollision[1];

View File

@ -21,7 +21,7 @@
#include <wx/numdlg.h> #include <wx/numdlg.h>
#include <boost/optional.hpp> #include <core/optional.h>
#include <functional> #include <functional>
using namespace std::placeholders; using namespace std::placeholders;
@ -60,8 +60,6 @@ using namespace std::placeholders;
#include "pns_router.h" #include "pns_router.h"
using namespace KIGFX; using namespace KIGFX;
using boost::optional;
/** /**
* Flags used by via tool actions * Flags used by via tool actions
@ -460,7 +458,7 @@ void ROUTER_TOOL::switchLayerOnViaPlacement()
m_router->SwitchLayer( al ); m_router->SwitchLayer( al );
} }
optional<int> newLayer = m_router->Sizes().PairedLayer( cl ); OPT<int> newLayer = m_router->Sizes().PairedLayer( cl );
if( !newLayer ) if( !newLayer )
newLayer = m_router->Sizes().GetLayerTop(); newLayer = m_router->Sizes().GetLayerTop();

View File

@ -219,7 +219,7 @@ int DRAWING_TOOL::DrawLine( const TOOL_EVENT& aEvent )
BOARD_ITEM_CONTAINER* parent = m_frame->GetModel(); BOARD_ITEM_CONTAINER* parent = m_frame->GetModel();
DRAWSEGMENT* line = m_editModules ? new EDGE_MODULE( (MODULE*) parent ) : new DRAWSEGMENT; DRAWSEGMENT* line = m_editModules ? new EDGE_MODULE( (MODULE*) parent ) : new DRAWSEGMENT;
boost::optional<VECTOR2D> startingPoint; OPT<VECTOR2D> startingPoint;
BOARD_COMMIT commit( m_frame ); BOARD_COMMIT commit( m_frame );
SCOPED_DRAW_MODE scopedDrawMode( m_mode, MODE::LINE ); SCOPED_DRAW_MODE scopedDrawMode( m_mode, MODE::LINE );
@ -234,11 +234,11 @@ int DRAWING_TOOL::DrawLine( const TOOL_EVENT& aEvent )
{ {
commit.Add( line ); commit.Add( line );
commit.Push( _( "Draw a line segment" ) ); commit.Push( _( "Draw a line segment" ) );
startingPoint = line->GetEnd(); startingPoint = VECTOR2D( line->GetEnd() );
} }
else else
{ {
startingPoint = boost::none; startingPoint = NULLOPT;
} }
line = m_editModules ? new EDGE_MODULE( (MODULE*) parent ) : new DRAWSEGMENT; line = m_editModules ? new EDGE_MODULE( (MODULE*) parent ) : new DRAWSEGMENT;
@ -920,7 +920,7 @@ int DRAWING_TOOL::SetAnchor( const TOOL_EVENT& aEvent )
bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic, bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic,
boost::optional<VECTOR2D> aStartingPoint ) OPT<VECTOR2D> aStartingPoint )
{ {
// Only two shapes are currently supported // Only two shapes are currently supported
assert( aShape == S_SEGMENT || aShape == S_CIRCLE ); assert( aShape == S_SEGMENT || aShape == S_CIRCLE );

View File

@ -26,7 +26,7 @@
#define __DRAWING_TOOL_H #define __DRAWING_TOOL_H
#include <tools/pcb_tool.h> #include <tools/pcb_tool.h>
#include <boost/optional.hpp> #include <core/optional.h>
#include <tool/tool_menu.h> #include <tool/tool_menu.h>
@ -206,7 +206,7 @@ private:
///> @return False if the tool was cancelled before the origin was set or origin and end are ///> @return False if the tool was cancelled before the origin was set or origin and end are
///> the same point. ///> the same point.
bool drawSegment( int aShape, DRAWSEGMENT*& aGraphic, bool drawSegment( int aShape, DRAWSEGMENT*& aGraphic,
boost::optional<VECTOR2D> aStartingPoint = boost::none ); OPT<VECTOR2D> aStartingPoint = NULLOPT );
///> Starts drawing an arc. ///> Starts drawing an arc.
///> @param aGraphic is an object that is going to be used by the tool for drawing. It has to ///> @param aGraphic is an object that is going to be used by the tool for drawing. It has to

View File

@ -108,7 +108,7 @@ void GRID_HELPER::SetAuxAxes( bool aEnable, const VECTOR2I& aOrigin, bool aEnabl
} }
else else
{ {
m_auxAxis = boost::optional<VECTOR2I>(); m_auxAxis = OPT<VECTOR2I>();
view->SetVisible( &m_viewAxis, false ); view->SetVisible( &m_viewAxis, false );
} }

View File

@ -28,7 +28,7 @@
#include <vector> #include <vector>
#include <math/vector2d.h> #include <math/vector2d.h>
#include <boost/optional.hpp> #include <core/optional.h>
#include <origin_viewitem.h> #include <origin_viewitem.h>
#include <layers_id_colors_and_visibility.h> #include <layers_id_colors_and_visibility.h>
@ -102,7 +102,7 @@ private:
} }
PCB_BASE_FRAME* m_frame; PCB_BASE_FRAME* m_frame;
boost::optional<VECTOR2I> m_auxAxis; OPT<VECTOR2I> m_auxAxis;
bool m_diagonalAuxAxesEnable; bool m_diagonalAuxAxesEnable;
KIGFX::ORIGIN_VIEWITEM m_viewSnapPoint, m_viewAxis; KIGFX::ORIGIN_VIEWITEM m_viewSnapPoint, m_viewAxis;
}; };

View File

@ -26,6 +26,9 @@
#include "kicad_clipboard.h" #include "kicad_clipboard.h"
#include "selection_tool.h" #include "selection_tool.h"
#include "pcb_actions.h" #include "pcb_actions.h"
#include <core/optional.h>
#include <tool/tool_manager.h> #include <tool/tool_manager.h>
#include <class_draw_panel_gal.h> #include <class_draw_panel_gal.h>
@ -467,12 +470,12 @@ int MODULE_EDITOR_TOOLS::CreatePadFromShapes( const TOOL_EVENT& aEvent )
pad->SetPrimitives( shapes ); pad->SetPrimitives( shapes );
pad->SetShape ( PAD_SHAPE_CUSTOM ); pad->SetShape ( PAD_SHAPE_CUSTOM );
boost::optional<VECTOR2I> anchor; OPT<VECTOR2I> anchor;
VECTOR2I tmp; VECTOR2I tmp;
if( refPad ) if( refPad )
{ {
anchor = pad->GetPosition(); anchor = VECTOR2I( pad->GetPosition() );
} }
else if( pad->GetBestAnchorPosition( tmp ) ) else if( pad->GetBestAnchorPosition( tmp ) )
{ {

View File

@ -27,7 +27,7 @@
#include <pcbnew_id.h> #include <pcbnew_id.h>
boost::optional<TOOL_EVENT> PCB_ACTIONS::TranslateLegacyId( int aId ) OPT<TOOL_EVENT> PCB_ACTIONS::TranslateLegacyId( int aId )
{ {
switch( aId ) switch( aId )
{ {
@ -199,5 +199,5 @@ boost::optional<TOOL_EVENT> PCB_ACTIONS::TranslateLegacyId( int aId )
return PCB_ACTIONS::pasteFromClipboard.MakeEvent(); return PCB_ACTIONS::pasteFromClipboard.MakeEvent();
} }
return boost::optional<TOOL_EVENT>(); return OPT<TOOL_EVENT>();
} }

View File

@ -28,7 +28,7 @@
#include <tool/tool_action.h> #include <tool/tool_action.h>
#include <tool/actions.h> #include <tool/actions.h>
#include <boost/optional.hpp> #include <core/optional.h>
class TOOL_EVENT; class TOOL_EVENT;
class TOOL_MANAGER; class TOOL_MANAGER;
@ -391,7 +391,7 @@ public:
///> @copydoc COMMON_ACTIONS::TranslateLegacyId() ///> @copydoc COMMON_ACTIONS::TranslateLegacyId()
virtual boost::optional<TOOL_EVENT> TranslateLegacyId( int aId ) override; virtual OPT<TOOL_EVENT> TranslateLegacyId( int aId ) override;
///> @copydoc COMMON_ACTIONS::RegisterAllTools() ///> @copydoc COMMON_ACTIONS::RegisterAllTools()
virtual void RegisterAllTools( TOOL_MANAGER* aToolManager ) override; virtual void RegisterAllTools( TOOL_MANAGER* aToolManager ) override;

View File

@ -47,7 +47,7 @@ int PICKER_TOOL::Main( const TOOL_EVENT& aEvent )
assert( !m_picking ); assert( !m_picking );
m_picking = true; m_picking = true;
m_picked = boost::none; m_picked = NULLOPT;
setControls(); setControls();
@ -62,7 +62,7 @@ int PICKER_TOOL::Main( const TOOL_EVENT& aEvent )
{ {
bool getNext = false; bool getNext = false;
m_picked = p; m_picked = VECTOR2D( p );
if( m_clickHandler ) if( m_clickHandler )
{ {
@ -112,7 +112,7 @@ void PICKER_TOOL::reset()
m_autoPanning = false; m_autoPanning = false;
m_picking = false; m_picking = false;
m_clickHandler = boost::none; m_clickHandler = NULLOPT;
} }

View File

@ -74,7 +74,7 @@ public:
* Function GetPoint() * Function GetPoint()
* Returns picked point. * Returns picked point.
*/ */
inline boost::optional<VECTOR2D> GetPoint() const inline OPT<VECTOR2D> GetPoint() const
{ {
assert( !m_picking ); assert( !m_picking );
return m_picked; return m_picked;
@ -108,10 +108,10 @@ private:
bool m_autoPanning; bool m_autoPanning;
///> Optional mouse click event handler. ///> Optional mouse click event handler.
boost::optional<CLICK_HANDLER> m_clickHandler; OPT<CLICK_HANDLER> m_clickHandler;
///> Picked point (if any). ///> Picked point (if any).
boost::optional<VECTOR2D> m_picked; OPT<VECTOR2D> m_picked;
///> Activity status. ///> Activity status.
bool m_picking; bool m_picking;

View File

@ -1361,7 +1361,7 @@ BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector )
} }
else if( evt->Action() == TA_CONTEXT_MENU_CHOICE ) else if( evt->Action() == TA_CONTEXT_MENU_CHOICE )
{ {
boost::optional<int> id = evt->GetCommandId(); OPT<int> id = evt->GetCommandId();
// User has selected an item, so this one will be returned // User has selected an item, so this one will be returned
if( id && ( *id > 0 ) ) if( id && ( *id > 0 ) )

View File

@ -28,10 +28,6 @@
* @brief Pcbnew main program. * @brief Pcbnew main program.
*/ */
#ifdef KICAD_SCRIPTING
#include <python_scripting.h>
#include <pcbnew_scripting_helpers.h>
#endif
#include <fctsys.h> #include <fctsys.h>
#include <pgm_base.h> #include <pgm_base.h>
#include <kiface_i.h> #include <kiface_i.h>
@ -51,7 +47,6 @@
#include <hotkeys.h> #include <hotkeys.h>
#include <wildcards_and_files_ext.h> #include <wildcards_and_files_ext.h>
#include <class_board.h> #include <class_board.h>
#include <3d_viewer.h>
#include <fp_lib_table.h> #include <fp_lib_table.h>
#include <module_editor_frame.h> #include <module_editor_frame.h>
#include <modview_frame.h> #include <modview_frame.h>

View File

@ -103,9 +103,9 @@ public:
virtual ~TEST_ACTIONS() {}; virtual ~TEST_ACTIONS() {};
virtual boost::optional<TOOL_EVENT> TranslateLegacyId( int aId ) virtual OPT<TOOL_EVENT> TranslateLegacyId( int aId )
{ {
return boost::none; return NULLOPT;
} }
void RegisterAllTools( TOOL_MANAGER* aToolManager ) void RegisterAllTools( TOOL_MANAGER* aToolManager )

View File

@ -75,6 +75,7 @@ target_link_libraries( test_window
common common
pcbcommon pcbcommon
bitmaps bitmaps
gal
${Boost_FILESYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}