← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH 00/11] Portability series

 

Committed 1(v2)..3 in 6490..6492. Thank you.

On Sat, Jan 16, 2016 at 04:41:47AM +0100, Simon Richter wrote:
> Hi,
> 
> these are portability patches, most of them derived from MSVC diagnostics.
> 
> The MSVC standard library and compiler are a lot more picky about standards
> compliance, so a lot of code that has only been tested on GCC is not
> actually standards compliant.
> 
> This patch series mainly reduces our reliance on GCC specifics.
> 
> The atan2 overload resolution patch might be controversial because it
> introduces a lot of ugly casts, so it may be better to introduce a helper
> function or type here.
> 
> Replacing an anonymous enum by a bunch of "static const int" is mainly for
> the benefit of MSVC here, I'm not enough of a language lawyer to tell
> whether the inability to resolve an addition operator inside a template
> function argument list is a bug in the resolver, or actually more correct
> than simply decaying the enum to an int. I've included that patch because
> these really are just constant integers, which the compiler is allowed to
> inline the same way as an enum, so this smells like a micro-optimization.
> 
>    Simon
> 
> Simon Richter (11):
>   Avoid comparing filepos with integers
>   Drop some debug output
>   Clarify atan2 overloads
>   Avoid cast from const_iterator to iterator
>   Correct import/export of KIFACE_GETTER.
>   Add missing C++ stdlib headers
>   Open namespace around definitions
>   Use numeric_limits for NaN constant
>   Use const int instead of anonymous enum type
>   Avoid conflicting declaration for Pgm()
>   Replace GCC-specific __func__ with portable __FUNCTION__
> 
>  common/gal/color4d.cpp                         |  4 +++-
>  common/gal/graphics_abstraction_layer.cpp      |  2 ++
>  common/grid_tricks.cpp                         |  2 ++
>  common/selcolor.cpp                            |  2 ++
>  common/tool/action_manager.cpp                 |  1 +
>  common/trigo.cpp                               |  2 +-
>  common/view/view.cpp                           |  2 +-
>  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 +
>  gerbview/gerbview_frame.cpp                    |  2 +-
>  include/common.h                               |  6 ++++++
>  include/geometry/rtree.h                       |  6 ++----
>  include/kiway.h                                |  9 +++++++--
>  include/math/vector2d.h                        |  2 +-
>  include/pgm_base.h                             |  2 --
>  include/tool/tool_event.h                      |  1 +
>  include/tool/tool_manager.h                    |  1 +
>  kicad/files-io.cpp                             |  2 +-
>  kicad/kicad.cpp                                |  9 ++++++++-
>  kicad/mainframe.cpp                            |  8 ++++----
>  kicad/menubar.cpp                              |  6 +++---
>  kicad/pgm_kicad.h                              |  3 ++-
>  kicad/prjconfig.cpp                            |  8 ++++----
>  pcb_calculator/transline/transline.cpp         |  1 +
>  pcbnew/class_dimension.cpp                     |  2 +-
>  pcbnew/class_dimension.h                       |  2 +-
>  pcbnew/class_drawsegment.cpp                   |  7 ++++---
>  pcbnew/class_pad_draw_functions.cpp            |  4 ++--
>  pcbnew/kicad_plugin.cpp                        |  2 +-
>  pcbnew/layer_widget.cpp                        |  3 +++
>  pcbnew/ratsnest_data.h                         |  2 ++
>  pcbnew/ratsnest_viewitem.cpp                   |  4 +++-
>  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/drawing_tool.cpp                  | 10 +++++-----
>  pcbnew/tools/edit_points.h                     |  3 +++
>  pcbnew/tools/pcbnew_control.cpp                |  4 ----
>  utils/idftools/idf_common.cpp                  |  1 +
>  utils/idftools/idf_helpers.cpp                 |  6 +++---
>  43 files changed, 96 insertions(+), 48 deletions(-)
> 
> -- 
> 2.1.4
> 

> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp



References