tags 625156 + patch thanks attached a patch that fixes the issue. some missing #include <cstddef> and moving a few template functions from a .cpp to a .h. The patch was *not* forwarded upstream, but it should be done, the latter patch results from a misunderstanding of how templates work.
--- mcrl2-201103.orig/libraries/lts/include/mcrl2/lts/detail/sim_hashtable.h +++ mcrl2-201103/libraries/lts/include/mcrl2/lts/detail/sim_hashtable.h @@ -22,6 +22,7 @@ #ifndef SIM_HASHTABLE_H #define SIM_HASHTABLE_H #include <vector> +#include <cstddef> struct bucket2 { --- mcrl2-201103.orig/libraries/lts/include/mcrl2/lts/detail/tree_set.h +++ mcrl2-201103/libraries/lts/include/mcrl2/lts/detail/tree_set.h @@ -11,6 +11,7 @@ #ifndef _TREE_SET_H #define _TREE_SET_H #include <vector> +#include <cstddef> namespace mcrl2 { --- mcrl2-201103.orig/tools/lysa2mcrl2/lysa.cpp +++ mcrl2-201103/tools/lysa2mcrl2/lysa.cpp @@ -51,52 +51,6 @@ void ProcessInfo::override_calculus(Calc _calculus = c; } -template< typename T> string join_ptr(T& input, string sep) -{ - string s = ""; - typename T::iterator it=input.begin(); - typename T::iterator it_end=input.end(); - - if (it==it_end) - { - return s; - } - //write first element - s += (string)(**it); - it++; - - //write other elements - - for (; it!=it_end; it++) - { - s += sep + (string)(**it); - } - return s; -} -template< typename T> string join(T& input, string sep) -{ - string s = ""; - typename T::iterator it=input.begin(); - typename T::iterator it_end=input.end(); - - if (it==it_end) - { - return s; - } - //write first element - s += (string)(*it); - it++; - - //write other elements - - for (; it!=it_end; it++) - { - s += sep + (string)(*it); - } - return s; -} -//template string join(Indices& input, string sep); - string Expression::position_in_input() { --- mcrl2-201103.orig/tools/lysa2mcrl2/lysa.h +++ mcrl2-201103/tools/lysa2mcrl2/lysa.h @@ -105,8 +105,52 @@ class ProcessInfo extern shared_ptr<ProcessInfo> current_process_info; void start_parsing(lysa_options& options); void set_current_position(parse_location& pos); -template<typename T> string join(T& input, string sep); -template<typename T> string join_ptr(T& input, string sep); + +template< typename T> string join_ptr(T& input, string sep) +{ + string s = ""; + typename T::iterator it=input.begin(); + typename T::iterator it_end=input.end(); + + if (it==it_end) + { + return s; + } + //write first element + s += (string)(**it); + it++; + + //write other elements + + for (; it!=it_end; it++) + { + s += sep + (string)(**it); + } + return s; +} +template< typename T> string join(T& input, string sep) +{ + string s = ""; + typename T::iterator it=input.begin(); + typename T::iterator it_end=input.end(); + + if (it==it_end) + { + return s; + } + //write first element + s += (string)(*it); + it++; + + //write other elements + + for (; it!=it_end; it++) + { + s += sep + (string)(*it); + } + return s; +} +//template string join(Indices& input, string sep); class Expression --- mcrl2-201103.orig/tools/ltsview/state.cpp +++ mcrl2-201103/tools/ltsview/state.cpp @@ -10,6 +10,7 @@ #include "state.h" #include "transition.h" +#include <cstddef> using namespace std; --- mcrl2-201103.orig/tools/ltsview/transition.cpp +++ mcrl2-201103/tools/ltsview/transition.cpp @@ -13,6 +13,7 @@ #include "transition.h" #include "state.h" +#include <cstddef> // Constructor and Destructor
signature.asc
Description: OpenPGP digital signature