Commit 47737dc3 authored by Roland Levillain's avatar Roland Levillain
Browse files

Work around g++ 4.5 deficiencies to compile Milena.

	* mln/core/concept/proxy.hxx
	(internal::helper_unproxy_rec< P, true >::P_)
	(internal::helper_unproxy_rec< const P, true >::P_):
	Remove these intermediate typedefs...
	(internal::helper_unproxy_rec< P, true >::ret)
	(internal::helper_unproxy_rec< const P, true >::ret):
	...to inline these definitions.
	* mln/util/array.hh
	(internal::subject_impl<util::array<T>&, E>::operator())
	(internal::subject_impl<util::array<T>&, E>::operator[])
	(internal::subject_impl<const util::array<T>&, E>::operator() const)
	(internal::subject_impl<const util::array<T>&, E>::operator[] const):
	* mln/core/site_set/p_graph_piter.hh
	(internal::subject_impl< const p_graph_piter<S,I>&, E >::graph):
	Use the exact same return type as in the declaration.
parent 626d241b
2010-11-29 Roland Levillain <roland@lrde.epita.fr>
Work around g++ 4.5 deficiencies to compile Milena.
* mln/core/concept/proxy.hxx
(internal::helper_unproxy_rec< P, true >::P_)
(internal::helper_unproxy_rec< const P, true >::P_):
Remove these intermediate typedefs...
(internal::helper_unproxy_rec< P, true >::ret)
(internal::helper_unproxy_rec< const P, true >::ret):
...to inline these definitions.
* mln/util/array.hh
(internal::subject_impl<util::array<T>&, E>::operator())
(internal::subject_impl<util::array<T>&, E>::operator[])
(internal::subject_impl<const util::array<T>&, E>::operator() const)
(internal::subject_impl<const util::array<T>&, E>::operator[] const):
* mln/core/site_set/p_graph_piter.hh
(internal::subject_impl< const p_graph_piter<S,I>&, E >::graph):
Use the exact same return type as in the declaration.
2010-11-29 Roland Levillain <roland@lrde.epita.fr>
 
Fix forward declarations in complex piters.
......@@ -92,16 +92,14 @@ namespace mln
template <typename P>
struct helper_unproxy_rec< P, true >
{
typedef mln_exact(P) P_;
typedef typename P_::HOT_actual_subject ret;
typedef mln_exact(P)::HOT_actual_subject ret;
static ret on(P& p);
};
template <typename P>
struct helper_unproxy_rec< const P, true >
{
typedef mln_exact(P) P_;
typedef mlc_const(typename P_::HOT_actual_subject) ret;
typedef mlc_const(mln_exact(P)::HOT_actual_subject) ret;
static ret on(const P& p);
};
......
......@@ -257,7 +257,7 @@ namespace mln
template <typename S, typename I, typename E>
inline
const typename S::graph_t&
const typename subject_impl< const p_graph_piter<S,I>&, E >::graph_t&
subject_impl< const p_graph_piter<S,I>&, E >::graph() const
{
return exact_().get_subject().graph();
......
......@@ -846,7 +846,7 @@ namespace mln
template <typename T, typename E>
inline
typename util::array<T>::mutable_result
typename subject_impl<util::array<T>&, E>::mutable_result
subject_impl<util::array<T>&, E>::operator()(unsigned i)
{
return exact_().get_subject()(i);
......@@ -854,7 +854,7 @@ namespace mln
template <typename T, typename E>
inline
typename util::array<T>::mutable_result
typename subject_impl<util::array<T>&, E>::mutable_result
subject_impl<util::array<T>&, E>::operator[](unsigned i)
{
return exact_().get_subject()[i];
......@@ -919,7 +919,7 @@ namespace mln
template <typename T, typename E>
inline
typename util::array<T>::ro_result
typename subject_impl<const util::array<T>&, E>::ro_result
subject_impl<const util::array<T>&, E>::operator()(unsigned i) const
{
return exact_().get_subject()(i);
......@@ -927,7 +927,7 @@ namespace mln
template <typename T, typename E>
inline
typename util::array<T>::ro_result
typename subject_impl<const util::array<T>&, E>::ro_result
subject_impl<const util::array<T>&, E>::operator[](unsigned i) const
{
return exact_().get_subject()[i];
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment