* mln/topo/center_only_iter.hh,
* mln/topo/face.hh,
* mln/trait/images.hh,
* mln/convert/from_to.hxx,
* mln/core/image/dmorph/sub_image.hh,
* mln/core/routine/init.hxx,
* mln/algebra/vec.hh: Make declaration and forward declarations
consistent.
* mln/canvas/browsing/backdiagonal2d.hh,
* mln/canvas/browsing/breadth_first_search.hh,
* mln/canvas/browsing/depth_first_search.hh,
* mln/canvas/browsing/diagonal2d.hh,
* mln/canvas/browsing/directional.hh,
* mln/canvas/browsing/fwd.hh,
* mln/canvas/browsing/hyper_directional.hh,
* mln/canvas/browsing/snake_fwd.hh,
* mln/canvas/browsing/snake_generic.hh,
* mln/canvas/browsing/snake_vert.hh,
* mln/fun/v2v/hsl_to_rgb.hh,
* mln/literal/black.hh,
* mln/literal/colors.hh,
* mln/literal/white.hh: Add a default constructor for global
variable types.
* mln/canvas/browsing/internal/graph_first_search.hh: Avoid a
warning for an unused variable.
* mln/data/was.median.hh: Fix type of the reference.
---
milena/ChangeLog | 35 +++++
milena/mln/algebra/vec.hh | 2 +-
milena/mln/canvas/browsing/backdiagonal2d.hh | 12 +-
milena/mln/canvas/browsing/breadth_first_search.hh | 13 ++-
milena/mln/canvas/browsing/depth_first_search.hh | 12 ++-
milena/mln/canvas/browsing/diagonal2d.hh | 8 +
.../canvas/browsing/dir_struct_elt_incr_update.hh | 11 ++-
milena/mln/canvas/browsing/directional.hh | 12 ++-
milena/mln/canvas/browsing/fwd.hh | 11 ++-
milena/mln/canvas/browsing/hyper_directional.hh | 11 ++-
.../canvas/browsing/internal/graph_first_search.hh | 1 +
milena/mln/canvas/browsing/snake_fwd.hh | 11 +-
milena/mln/canvas/browsing/snake_generic.hh | 11 +-
milena/mln/canvas/browsing/snake_vert.hh | 5 +-
milena/mln/convert/from_to.hxx | 2 +-
milena/mln/core/image/dmorph/sub_image.hh | 2 +-
milena/mln/core/routine/init.hxx | 2 +-
milena/mln/data/was.median.hh | 8 +-
milena/mln/fun/v2v/hsl_to_rgb.hh | 11 +-
milena/mln/literal/black.hh | 14 ++-
milena/mln/literal/colors.hh | 156 ++++++++++++++++----
milena/mln/literal/white.hh | 12 ++-
milena/mln/topo/center_only_iter.hh | 2 +-
milena/mln/topo/face.hh | 2 +-
milena/mln/trait/images.hh | 2 +-
25 files changed, 303 insertions(+), 65 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 7e5855b..724f344 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,38 @@
+2011-11-21 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix compilation issues with g++ 4.6.1 and clang++.
+
+ * mln/topo/center_only_iter.hh,
+ * mln/topo/face.hh,
+ * mln/trait/images.hh,
+ * mln/convert/from_to.hxx,
+ * mln/core/image/dmorph/sub_image.hh,
+ * mln/core/routine/init.hxx,
+ * mln/algebra/vec.hh: Make declaration and forward declarations
+ consistent.
+
+ * mln/canvas/browsing/backdiagonal2d.hh,
+ * mln/canvas/browsing/breadth_first_search.hh,
+ * mln/canvas/browsing/depth_first_search.hh,
+ * mln/canvas/browsing/diagonal2d.hh,
+ * mln/canvas/browsing/dir_struct_elt_incr_update.hh,
+ * mln/canvas/browsing/directional.hh,
+ * mln/canvas/browsing/fwd.hh,
+ * mln/canvas/browsing/hyper_directional.hh,
+ * mln/canvas/browsing/snake_fwd.hh,
+ * mln/canvas/browsing/snake_generic.hh,
+ * mln/canvas/browsing/snake_vert.hh,
+ * mln/fun/v2v/hsl_to_rgb.hh,
+ * mln/literal/black.hh,
+ * mln/literal/colors.hh,
+ * mln/literal/white.hh: Add a default constructor for global
+ variable types.
+
+ * mln/canvas/browsing/internal/graph_first_search.hh: Avoid a
+ warning for an unused variable.
+
+ * mln/data/was.median.hh: Fix type of the reference.
+
2011-10-04 Roland Levillain <roland(a)lrde.epita.fr>
Handle the case of filling an empty border.
diff --git a/milena/mln/algebra/vec.hh b/milena/mln/algebra/vec.hh
index dc526ec..bbe23c8 100644
--- a/milena/mln/algebra/vec.hh
+++ b/milena/mln/algebra/vec.hh
@@ -56,7 +56,7 @@ namespace mln
// Forward declarations.
namespace algebra {
template <unsigned n, typename T> class vec;
- template <unsigned d, typename C> struct h_vec;
+ template <unsigned d, typename C> class h_vec;
template <unsigned n, unsigned m, typename T> class mat;
}
diff --git a/milena/mln/canvas/browsing/backdiagonal2d.hh
b/milena/mln/canvas/browsing/backdiagonal2d.hh
index bd680aa..0ec455e 100644
--- a/milena/mln/canvas/browsing/backdiagonal2d.hh
+++ b/milena/mln/canvas/browsing/backdiagonal2d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -82,6 +82,10 @@ namespace mln
*/
struct backdiagonal2d_t : public Browsing< backdiagonal2d_t >
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ backdiagonal2d_t();
+
template <typename F>
void operator()(F& f) const;
};
@@ -92,13 +96,15 @@ namespace mln
# ifndef MLN_INCLUDE_ONLY
-
# ifndef MLN_WO_GLOBAL_VARS
const backdiagonal2d_t backdiagonal2d;
# endif // ! MLN_WO_GLOBAL_VARS
+ backdiagonal2d_t::backdiagonal2d_t()
+ {
+ }
template <typename F>
inline
diff --git a/milena/mln/canvas/browsing/breadth_first_search.hh
b/milena/mln/canvas/browsing/breadth_first_search.hh
index 6f5327e..a637114 100644
--- a/milena/mln/canvas/browsing/breadth_first_search.hh
+++ b/milena/mln/canvas/browsing/breadth_first_search.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2011 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -78,7 +79,11 @@ namespace mln
/// Breadth-first search algorithm for graph, on vertices.
struct breadth_first_search_t :
public internal::graph_first_search_t<breadth_first_search_t, std::queue>
- {};
+ {
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ breadth_first_search_t();
+ };
extern const breadth_first_search_t breadth_first_search;
@@ -88,6 +93,10 @@ namespace mln
const breadth_first_search_t breadth_first_search;
+ breadth_first_search_t::breadth_first_search_t()
+ {
+ }
+
# endif // ! MLN_INCLUDE_ONLY
} // end of namespace mln::canvas::browsing
diff --git a/milena/mln/canvas/browsing/depth_first_search.hh
b/milena/mln/canvas/browsing/depth_first_search.hh
index 3d76633..ecb2c08 100644
--- a/milena/mln/canvas/browsing/depth_first_search.hh
+++ b/milena/mln/canvas/browsing/depth_first_search.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -79,7 +79,11 @@ namespace mln
/// Breadth-first search algorithm for graph, on vertices.
struct depth_first_search_t :
public internal::graph_first_search_t<depth_first_search_t, std::stack>
- {};
+ {
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ depth_first_search_t();
+ };
extern const depth_first_search_t depth_first_search;
@@ -93,6 +97,10 @@ namespace mln
# endif // ! MLN_WO_GLOBAL_VARS
+ depth_first_search_t::depth_first_search_t()
+ {
+ }
+
# endif // ! MLN_INCLUDE_ONLY
} // end of namespace mln::canvas::browsing
diff --git a/milena/mln/canvas/browsing/diagonal2d.hh
b/milena/mln/canvas/browsing/diagonal2d.hh
index 056375b..246f930 100644
--- a/milena/mln/canvas/browsing/diagonal2d.hh
+++ b/milena/mln/canvas/browsing/diagonal2d.hh
@@ -81,6 +81,10 @@ namespace mln
*/
struct diagonal2d_t : public Browsing< diagonal2d_t >
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ diagonal2d_t();
+
template <typename F>
void operator()(F& f) const;
};
@@ -95,6 +99,10 @@ namespace mln
# endif // ! MLN_WO_GLOBAL_VARS
+ diagonal2d_t::diagonal2d_t()
+ {
+ }
+
template <typename F>
inline
diff --git a/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh
b/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh
index 4c334ec..0037229 100644
--- a/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh
+++ b/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -85,6 +86,10 @@ namespace mln
*/
struct dir_struct_elt_incr_update_t : public Browsing<
dir_struct_elt_incr_update_t >
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ dir_struct_elt_incr_update_t();
+
template <typename F>
void operator()(F& f) const;
};
@@ -95,6 +100,10 @@ namespace mln
const dir_struct_elt_incr_update_t dir_struct_elt_incr_update;
+ dir_struct_elt_incr_update_t::dir_struct_elt_incr_update_t()
+ {
+ }
+
template <typename F>
inline
void
diff --git a/milena/mln/canvas/browsing/directional.hh
b/milena/mln/canvas/browsing/directional.hh
index 91b6ea6..8931cad 100644
--- a/milena/mln/canvas/browsing/directional.hh
+++ b/milena/mln/canvas/browsing/directional.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -89,6 +89,10 @@ namespace mln
*/
struct directional_t : public Browsing< directional_t >
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ directional_t();
+
template <typename F>
void operator()(F& f) const;
};
@@ -103,6 +107,10 @@ namespace mln
# endif // ! MLN_WO_GLOBAL_VARS
+ directional_t::directional_t()
+ {
+ }
+
template <typename F>
inline
void
diff --git a/milena/mln/canvas/browsing/fwd.hh b/milena/mln/canvas/browsing/fwd.hh
index f89e75b..86c9bf8 100644
--- a/milena/mln/canvas/browsing/fwd.hh
+++ b/milena/mln/canvas/browsing/fwd.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -71,6 +72,10 @@ namespace mln
*/
struct fwd_t : public Browsing< fwd_t >
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ fwd_t();
+
template <typename F>
void operator()(F& f) const;
};
@@ -81,6 +86,10 @@ namespace mln
const fwd_t fwd;
+ fwd_t::fwd_t()
+ {
+ }
+
template <typename F>
inline
void
diff --git a/milena/mln/canvas/browsing/hyper_directional.hh
b/milena/mln/canvas/browsing/hyper_directional.hh
index 6ad9a47..65bb794 100644
--- a/milena/mln/canvas/browsing/hyper_directional.hh
+++ b/milena/mln/canvas/browsing/hyper_directional.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -73,6 +74,10 @@ namespace mln
*/
struct hyper_directional_t : public Browsing< hyper_directional_t >
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ hyper_directional_t();
+
template <typename F>
void operator()(F& f) const;
};
@@ -83,6 +88,10 @@ namespace mln
const hyper_directional_t hyper_directional;
+ hyper_directional_t::hyper_directional_t()
+ {
+ }
+
template <typename F>
inline
void
diff --git a/milena/mln/canvas/browsing/internal/graph_first_search.hh
b/milena/mln/canvas/browsing/internal/graph_first_search.hh
index 1bc64c6..8d74fa4 100644
--- a/milena/mln/canvas/browsing/internal/graph_first_search.hh
+++ b/milena/mln/canvas/browsing/internal/graph_first_search.hh
@@ -128,6 +128,7 @@ namespace mln
util::vertex_id_t
next(const S& stack)
{
+ (void) stack;
mln_assertion(0);
/// Not defined yet!
// mlc_abort(S)::check();
diff --git a/milena/mln/canvas/browsing/snake_fwd.hh
b/milena/mln/canvas/browsing/snake_fwd.hh
index ca6ecf2..06b72df 100644
--- a/milena/mln/canvas/browsing/snake_fwd.hh
+++ b/milena/mln/canvas/browsing/snake_fwd.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -83,6 +83,10 @@ namespace mln
struct snake_fwd_t : public Browsing< snake_fwd_t >
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ snake_fwd_t();
+
template <typename F>
void operator()(F& f) const;
};
@@ -97,6 +101,9 @@ namespace mln
# endif // ! MLN_WO_GLOBAL_VARS
+ snake_fwd_t::snake_fwd_t()
+ {
+ }
template <typename F>
inline
diff --git a/milena/mln/canvas/browsing/snake_generic.hh
b/milena/mln/canvas/browsing/snake_generic.hh
index c4c1ae8..af9f799 100644
--- a/milena/mln/canvas/browsing/snake_generic.hh
+++ b/milena/mln/canvas/browsing/snake_generic.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -76,6 +76,10 @@ namespace mln
struct snake_generic_t : public Browsing< snake_generic_t >
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ snake_generic_t();
+
template <typename F>
void operator()(F& f) const;
@@ -91,6 +95,9 @@ namespace mln
# endif // ! MLN_WO_GLOBAL_VARS
+ snake_generic_t::snake_generic_t()
+ {
+ }
template <typename F>
inline
diff --git a/milena/mln/canvas/browsing/snake_vert.hh
b/milena/mln/canvas/browsing/snake_vert.hh
index 9e46c9c..416786c 100644
--- a/milena/mln/canvas/browsing/snake_vert.hh
+++ b/milena/mln/canvas/browsing/snake_vert.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -90,7 +91,7 @@ namespace mln
# ifndef MLN_INCLUDE_ONLY
- const snake_vert_t snake_vert;
+ const snake_vert_t snake_vert = snake_vert_t();
template <typename F>
inline
diff --git a/milena/mln/convert/from_to.hxx b/milena/mln/convert/from_to.hxx
index e99c3f6..a0e22df 100644
--- a/milena/mln/convert/from_to.hxx
+++ b/milena/mln/convert/from_to.hxx
@@ -69,7 +69,7 @@ namespace mln
namespace algebra {
template <unsigned n, typename T> class vec;
- template <unsigned d, typename C> struct h_vec;
+ template <unsigned d, typename C> class h_vec;
}
namespace fun {
diff --git a/milena/mln/core/image/dmorph/sub_image.hh
b/milena/mln/core/image/dmorph/sub_image.hh
index 088142d..d266ce6 100644
--- a/milena/mln/core/image/dmorph/sub_image.hh
+++ b/milena/mln/core/image/dmorph/sub_image.hh
@@ -44,7 +44,7 @@ namespace mln
// Forward declaration.
- template <typename I, typename S> struct sub_image;
+ template <typename I, typename S> class sub_image;
namespace internal
diff --git a/milena/mln/core/routine/init.hxx b/milena/mln/core/routine/init.hxx
index 5cc6d12..1ff8067 100644
--- a/milena/mln/core/routine/init.hxx
+++ b/milena/mln/core/routine/init.hxx
@@ -37,7 +37,7 @@ namespace mln
// Forward declarations.
namespace fun { namespace i2v { template <typename T> class array; } }
- namespace pw { namespace internal { template <typename F, typename S, typename E>
struct image_base; } }
+ namespace pw { namespace internal { template <typename F, typename S, typename E>
class image_base; } }
namespace pw { template <typename F, typename S> class image; }
template <typename I, typename F> struct image_if;
diff --git a/milena/mln/data/was.median.hh b/milena/mln/data/was.median.hh
index 2e470d5..73ee247 100644
--- a/milena/mln/data/was.median.hh
+++ b/milena/mln/data/was.median.hh
@@ -97,8 +97,8 @@ namespace mln
med.take(input(q));
}
- int& row = p.row();
- int& col = p.col();
+ def::coord& row = p.row();
+ def::coord& col = p.col();
bool fwd = true;
mln_assertion(p.col() == min_col);
@@ -155,8 +155,8 @@ namespace mln
const unsigned half = win.length() / 2;
point2d p;
- int& row = p.row();
- int& col = p.col();
+ def::coord& row = p.row();
+ def::coord& col = p.col();
accu::stat::median_h<mln_vset(I)> med(input.values());
diff --git a/milena/mln/fun/v2v/hsl_to_rgb.hh b/milena/mln/fun/v2v/hsl_to_rgb.hh
index 7d66d31..dbedcf4 100644
--- a/milena/mln/fun/v2v/hsl_to_rgb.hh
+++ b/milena/mln/fun/v2v/hsl_to_rgb.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -71,6 +71,9 @@ namespace mln
{
typedef T_rgb result;
+
+ f_hsl_to_rgb_();
+
template <typename T_hsl>
T_rgb operator()(const T_hsl& hsl) const;
@@ -94,6 +97,10 @@ namespace mln
/// \}
# endif // !MLN_WO_GLOBAL_VARS
+ template <typename T_rgb>
+ f_hsl_to_rgb_<T_rgb>::f_hsl_to_rgb_()
+ {
+ }
/// This method implements the conversion from HSL to RGB as described by
/// Max K. Agoston in `Computer Graphics and Geometric Modeling:
diff --git a/milena/mln/literal/black.hh b/milena/mln/literal/black.hh
index ab05cae..6ffbe33 100644
--- a/milena/mln/literal/black.hh
+++ b/milena/mln/literal/black.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -42,6 +42,10 @@ namespace mln
/// Type of literal black.
struct black_t : public Literal<black_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ black_t();
+
# ifdef MLN_NEW_VALUE_TYPES
operator float() const;
operator double() const;
@@ -50,17 +54,21 @@ namespace mln
/// Literal black.
- extern const black_t& black;
+ extern const black_t black;
# ifndef MLN_INCLUDE_ONLY
# ifndef MLN_WO_GLOBAL_VARS
- const black_t& black = black_t();
+ const black_t black;
# endif
+ black_t::black_t()
+ {
+ }
+
# ifdef MLN_NEW_VALUE_TYPES
inline
black_t::operator float() const
diff --git a/milena/mln/literal/colors.hh b/milena/mln/literal/colors.hh
index 099d2c7..52c05d0 100644
--- a/milena/mln/literal/colors.hh
+++ b/milena/mln/literal/colors.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -42,146 +42,244 @@ namespace mln
/// Type of literal red.
struct red_t : public Literal<red_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ red_t();
};
/// Type of literal green.
struct green_t : public Literal<green_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ green_t();
};
/// Type of literal blue.
struct blue_t : public Literal<blue_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ blue_t();
};
/// Type of literal brown.
struct brown_t : public Literal<brown_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ brown_t();
};
/// Type of literal lime.
struct lime_t : public Literal<lime_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ lime_t();
};
/// Type of literal orange.
struct orange_t : public Literal<orange_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ orange_t();
};
/// Type of literal pink.
struct pink_t : public Literal<pink_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ pink_t();
};
/// Type of literal purple.
struct purple_t : public Literal<purple_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ purple_t();
};
/// Type of literal teal.
struct teal_t : public Literal<teal_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ teal_t();
};
/// Type of literal violet.
struct violet_t : public Literal<violet_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ violet_t();
};
/// Type of literal cyan.
struct cyan_t : public Literal<cyan_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ cyan_t();
};
/// Type of literal magenta.
struct magenta_t : public Literal<magenta_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ magenta_t();
};
/// Type of literal yellow.
struct yellow_t : public Literal<yellow_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ yellow_t();
};
/// Type of literal olive.
struct olive_t : public Literal<olive_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ olive_t();
};
/// Literal red.
- extern const red_t& red;
+ extern const red_t red;
/// Literal green.
- extern const green_t& green;
+ extern const green_t green;
/// Literal blue.
- extern const blue_t& blue;
+ extern const blue_t blue;
/// Literal brown.
- extern const brown_t& brown;
+ extern const brown_t brown;
/// Literal lime.
- extern const lime_t& lime;
+ extern const lime_t lime;
/// Literal orange.
- extern const orange_t& orange;
+ extern const orange_t orange;
/// Literal pink.
- extern const pink_t& pink;
+ extern const pink_t pink;
/// Literal purple.
- extern const purple_t& purple;
+ extern const purple_t purple;
/// Literal teal.
- extern const teal_t& teal;
+ extern const teal_t teal;
/// Literal violet.
- extern const violet_t& violet;
+ extern const violet_t violet;
/// Literal cyan.
- extern const cyan_t& cyan;
+ extern const cyan_t cyan;
/// Literal magenta.
- extern const magenta_t& magenta;
+ extern const magenta_t magenta;
/// Literal yellow.
- extern const yellow_t& yellow;
+ extern const yellow_t yellow;
/// Literal olive.
- extern const olive_t& olive;
+ extern const olive_t olive;
# ifndef MLN_INCLUDE_ONLY
+ red_t::red_t()
+ {
+ }
+
+ green_t::green_t()
+ {
+ }
+
+ blue_t::blue_t()
+ {
+ }
+
+ brown_t::brown_t()
+ {
+ }
+
+ lime_t::lime_t()
+ {
+ }
+
+ orange_t::orange_t()
+ {
+ }
+
+ pink_t::pink_t()
+ {
+ }
+
+ purple_t::purple_t()
+ {
+ }
+
+ teal_t::teal_t()
+ {
+ }
+
+ violet_t::violet_t()
+ {
+ }
+
+ cyan_t::cyan_t()
+ {
+ }
+
+ magenta_t::magenta_t()
+ {
+ }
+
+ yellow_t::yellow_t()
+ {
+ }
+
+ olive_t::olive_t()
+ {
+ }
+
# ifndef MLN_WO_GLOBAL_VARS
- const red_t& red = red_t();
+ const red_t red;
- const green_t& green = green_t();
+ const green_t green;
- const blue_t& blue = blue_t();
+ const blue_t blue;
- const brown_t& brown = brown_t();
+ const brown_t brown;
- const lime_t& lime = lime_t();
+ const lime_t lime;
- const orange_t& orange = orange_t();
+ const orange_t orange;
- const pink_t& pink = pink_t();
+ const pink_t pink;
- const purple_t& purple = purple_t();
+ const purple_t purple;
- const teal_t& teal = teal_t();
+ const teal_t teal;
- const violet_t& violet = violet_t();
+ const violet_t violet;
- const cyan_t& cyan = cyan_t();
+ const cyan_t cyan;
- const magenta_t& magenta = magenta_t();
+ const magenta_t magenta;
- const yellow_t& yellow = yellow_t();
+ const yellow_t yellow;
- const olive_t& olive = olive_t();
+ const olive_t olive;
# endif
diff --git a/milena/mln/literal/white.hh b/milena/mln/literal/white.hh
index 9f19f3a..620a73a 100644
--- a/milena/mln/literal/white.hh
+++ b/milena/mln/literal/white.hh
@@ -42,6 +42,10 @@ namespace mln
/// Type of literal white.
struct white_t : public Literal<white_t>
{
+ // This default constructor is needed for compilation with gcc
+ // 4.6.0, gcc 4.6.1 and Clang.
+ white_t();
+
# ifdef MLN_NEW_VALUE_TYPES
operator float() const;
operator double() const;
@@ -50,17 +54,21 @@ namespace mln
/// Literal white.
- extern const white_t& white;
+ extern const white_t white;
# ifndef MLN_INCLUDE_ONLY
# ifndef MLN_WO_GLOBAL_VARS
- const white_t& white = white_t();
+ const white_t white;
# endif
+ white_t::white_t()
+ {
+ }
+
# ifdef MLN_NEW_VALUE_TYPES
inline
white_t::operator float() const
diff --git a/milena/mln/topo/center_only_iter.hh b/milena/mln/topo/center_only_iter.hh
index 9d52099..5e695ce 100644
--- a/milena/mln/topo/center_only_iter.hh
+++ b/milena/mln/topo/center_only_iter.hh
@@ -45,7 +45,7 @@ namespace mln
{
// Forward declaration.
- template <unsigned D> struct face;
+ template <unsigned D> class face;
/*----------------------------.
diff --git a/milena/mln/topo/face.hh b/milena/mln/topo/face.hh
index c9b58b0..1ea6a2b 100644
--- a/milena/mln/topo/face.hh
+++ b/milena/mln/topo/face.hh
@@ -49,7 +49,7 @@ namespace mln
template <unsigned D> class complex;
template <unsigned N, unsigned D> class n_face;
template <unsigned N, unsigned D> class face_data;
- template <unsigned N> struct algebraic_face;
+ template <unsigned N> class algebraic_face;
/*-------.
diff --git a/milena/mln/trait/images.hh b/milena/mln/trait/images.hh
index d8e80b0..2ae9299 100644
--- a/milena/mln/trait/images.hh
+++ b/milena/mln/trait/images.hh
@@ -118,7 +118,7 @@ namespace mln
// Morphers.
template <typename I, typename F> struct image_if_base;
template <typename I, typename D> struct decorated_image;
- template <typename I, typename S> struct sub_image;
+ template <typename I, typename S> class sub_image;
template <typename I> class safe_image;
template <typename T, typename I> struct cast_image_;
namespace value { template <unsigned n, typename I> struct stack_image; }
--
1.7.2.5