← Back to team overview

kicad-developers team mailing list archive

[PATCH 3/3] add missing C++ stdlib headers

 

These source files use definitions from the standard library without making
sure they are included. It happens to work on current gcc because parts of
the standard library implicitly include these other headers, but that is
not guaranteed.
---
 common/gal/graphics_abstraction_layer.cpp      | 2 ++
 common/tool/action_manager.cpp                 | 1 +
 eeschema/class_library.h                       | 2 ++
 eeschema/dialogs/dialog_lib_edit_pin_table.cpp | 2 ++
 eeschema/sch_sheet_path.h                      | 2 ++
 gerbview/class_GERBER.cpp                      | 1 +
 include/tool/tool_manager.h                    | 1 +
 pcb_calculator/transline/transline.cpp         | 1 +
 pcbnew/ratsnest_data.h                         | 2 ++
 pcbnew/router/pns_diff_pair.cpp                | 1 +
 pcbnew/router/pns_optimizer.cpp                | 2 ++
 pcbnew/router/pns_utils.cpp                    | 2 ++
 pcbnew/tools/conditional_menu.h                | 1 +
 pcbnew/tools/edit_points.h                     | 3 +++
 14 files changed, 23 insertions(+)

diff --git a/common/gal/graphics_abstraction_layer.cpp b/common/gal/graphics_abstraction_layer.cpp
index d9e9eac..5d9a502 100644
--- a/common/gal/graphics_abstraction_layer.cpp
+++ b/common/gal/graphics_abstraction_layer.cpp
@@ -29,6 +29,8 @@
 #include <gal/graphics_abstraction_layer.h>
 #include <gal/definitions.h>
 
+#include <cmath>
+
 using namespace KIGFX;
 
 
diff --git a/common/tool/action_manager.cpp b/common/tool/action_manager.cpp
index 72706be..6f96ec4 100644
--- a/common/tool/action_manager.cpp
+++ b/common/tool/action_manager.cpp
@@ -30,6 +30,7 @@
 #include <hotkeys_basic.h>
 #include <boost/foreach.hpp>
 #include <boost/range/adaptor/map.hpp>
+#include <cctype>
 #include <cassert>
 
 ACTION_MANAGER::ACTION_MANAGER( TOOL_MANAGER* aToolManager ) :
diff --git a/eeschema/class_library.h b/eeschema/class_library.h
index 37bf0dd..355cab0 100644
--- a/eeschema/class_library.h
+++ b/eeschema/class_library.h
@@ -37,6 +37,8 @@
 
 #include <project.h>
 
+#include <map>
+
 class LINE_READER;
 class OUTPUTFORMATTER;
 
diff --git a/eeschema/dialogs/dialog_lib_edit_pin_table.cpp b/eeschema/dialogs/dialog_lib_edit_pin_table.cpp
index dc39b53..181ae32 100644
--- a/eeschema/dialogs/dialog_lib_edit_pin_table.cpp
+++ b/eeschema/dialogs/dialog_lib_edit_pin_table.cpp
@@ -4,6 +4,8 @@
 
 #include <boost/algorithm/string/join.hpp>
 #include <queue>
+#include <list>
+#include <map>
 
 /* Avoid wxWidgets bug #16906 -- http://trac.wxwidgets.org/ticket/16906
  *
diff --git a/eeschema/sch_sheet_path.h b/eeschema/sch_sheet_path.h
index 5cd60bc..a451e9f 100644
--- a/eeschema/sch_sheet_path.h
+++ b/eeschema/sch_sheet_path.h
@@ -33,6 +33,8 @@
 
 #include <base_struct.h>
 
+#include <map>
+
 
 /** Info about complex hierarchies handling:
  * A hierarchical schematic uses sheets (hierarchical sheets) included in a
diff --git a/gerbview/class_GERBER.cpp b/gerbview/class_GERBER.cpp
index 59d7615..f4483c6 100644
--- a/gerbview/class_GERBER.cpp
+++ b/gerbview/class_GERBER.cpp
@@ -39,6 +39,7 @@
 #include <class_X2_gerber_attributes.h>
 
 #include <algorithm>
+#include <map>
 
 
 /**
diff --git a/include/tool/tool_manager.h b/include/tool/tool_manager.h
index 69cd60f..c5178f6 100644
--- a/include/tool/tool_manager.h
+++ b/include/tool/tool_manager.h
@@ -29,6 +29,7 @@
 #include <deque>
 #include <typeinfo>
 #include <map>
+#include <list>
 
 #include <tool/tool_base.h>
 
diff --git a/pcb_calculator/transline/transline.cpp b/pcb_calculator/transline/transline.cpp
index fe608cb..cdaa633 100644
--- a/pcb_calculator/transline/transline.cpp
+++ b/pcb_calculator/transline/transline.cpp
@@ -21,6 +21,7 @@
  *
  */
 
+#include <cmath>
 #include <limits>
 #include <transline.h>
 #include <units.h>
diff --git a/pcbnew/ratsnest_data.h b/pcbnew/ratsnest_data.h
index b1bd137..8df7672 100644
--- a/pcbnew/ratsnest_data.h
+++ b/pcbnew/ratsnest_data.h
@@ -39,6 +39,8 @@
 #include <boost/unordered_map.hpp>
 #include <boost/foreach.hpp>
 
+#include <deque>
+
 class BOARD;
 class BOARD_ITEM;
 class BOARD_CONNECTED_ITEM;
diff --git a/pcbnew/router/pns_diff_pair.cpp b/pcbnew/router/pns_diff_pair.cpp
index 97ef4f8..140474e 100644
--- a/pcbnew/router/pns_diff_pair.cpp
+++ b/pcbnew/router/pns_diff_pair.cpp
@@ -22,6 +22,7 @@
 
 #include <cstdio>
 #include <cstdlib>
+#include <cmath>
 #include <limits>
 
 #include <geometry/shape.h>
diff --git a/pcbnew/router/pns_optimizer.cpp b/pcbnew/router/pns_optimizer.cpp
index 02bbb73..090c527 100644
--- a/pcbnew/router/pns_optimizer.cpp
+++ b/pcbnew/router/pns_optimizer.cpp
@@ -24,6 +24,8 @@
 #include <geometry/shape_rect.h>
 #include <geometry/shape_convex.h>
 
+#include <cmath>
+
 #include "pns_line.h"
 #include "pns_diff_pair.h"
 #include "pns_node.h"
diff --git a/pcbnew/router/pns_utils.cpp b/pcbnew/router/pns_utils.cpp
index 31eb78d..f7871be 100644
--- a/pcbnew/router/pns_utils.cpp
+++ b/pcbnew/router/pns_utils.cpp
@@ -25,6 +25,8 @@
 
 #include <geometry/shape_segment.h>
 
+#include <cmath>
+
 const SHAPE_LINE_CHAIN OctagonalHull( const VECTOR2I& aP0, const VECTOR2I& aSize,
                                       int aClearance, int aChamfer )
 {
diff --git a/pcbnew/tools/conditional_menu.h b/pcbnew/tools/conditional_menu.h
index fe49a28..7865e9b 100644
--- a/pcbnew/tools/conditional_menu.h
+++ b/pcbnew/tools/conditional_menu.h
@@ -27,6 +27,7 @@
 
 #include "selection_conditions.h"
 #include <boost/unordered_map.hpp>
+#include <list>
 #include <wx/wx.h>
 
 class SELECTION_TOOL;
diff --git a/pcbnew/tools/edit_points.h b/pcbnew/tools/edit_points.h
index c939eca..ca9e373 100644
--- a/pcbnew/tools/edit_points.h
+++ b/pcbnew/tools/edit_points.h
@@ -30,6 +30,9 @@
 #include <base_struct.h>
 #include <layers_id_colors_and_visibility.h>
 
+#include <list>
+#include <deque>
+
 #include "edit_constraints.h"
 
 /**

Follow ups

References