您尚未登录。

#1 2016-06-15 04:35:31

tan9p
会员
注册时间: 2015-07-07
帖子: 130

编译github上的一个程序seshat出错,不知道问题出在哪儿?

看到一个手写数学公式的识别程序seshat    https://github.com/tan9p/seshat
README里写了一个编译方法 自己编译时出错,
第一个错误是 rnnlib4seshat/Helpers.hpp:154:15: error: reference to ‘tuple’ is ambiguous
typedef const tuple<real_t&, real_t&, real_t&, real_t&>& TDDDD;
有一个2511行的错误记录,有大侠能帮忙看一下吗?谢谢!

离线

#2 2016-06-15 04:36:04

tan9p
会员
注册时间: 2015-07-07
帖子: 130

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

g++ -c symfeatures.cc -O3 -Wno-unused-result 
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:154:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t&, real_t&, real_t&, real_t&>& TDDDD;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:155:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t&, real_t&, real_t&, real_t&, real_t&>& TDDDDD;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:156:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t&, real_t&, real_t&>& TDDD;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:157:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t&, real_t&, int&>& TDDI;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:158:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t&, real_t&, real_t&>& TDDF;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:159:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t&, real_t&, real_t>& TDDCF;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:160:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t&, real_t&>& TDD;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:161:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<int, string>& TIS;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:162:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<int, int>& TII;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:163:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<int, real_t>& TID;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:164:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<int, set<int>&>& TISETI;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:165:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<int&, bool, int>& TIBI;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:166:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t, Log<real_t>& >& TDL;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:167:15: error: reference to ‘tuple’ is ambiguous
 typedef const tuple<real_t&, Log<real_t>, Log<real_t> >& TDLL;
               ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:339:52: error: template argument 1 is invalid
                  typename range_iterator<R>::type> >,
                                                    ^
rnnlib4seshat/Helpers.hpp:342:52: error: template argument 1 is invalid
                  typename range_iterator<R>::type> > >
                                                    ^
rnnlib4seshat/Helpers.hpp:342:54: error: template argument 1 is invalid
                  typename range_iterator<R>::type> > >
                                                      ^
rnnlib4seshat/Helpers.hpp:342:54: error: template argument 2 is invalid
rnnlib4seshat/Helpers.hpp:548:53: error: template argument 1 is invalid
                  typename range_iterator<R2>::type> >,
                                                     ^
rnnlib4seshat/Helpers.hpp:551:53: error: template argument 1 is invalid
                  typename range_iterator<R2>::type> > >
                                                     ^
rnnlib4seshat/Helpers.hpp:551:55: error: template argument 1 is invalid
                  typename range_iterator<R2>::type> > >
                                                       ^
rnnlib4seshat/Helpers.hpp:551:55: error: template argument 2 is invalid
rnnlib4seshat/Helpers.hpp:565:53: error: template argument 1 is invalid
                  typename range_iterator<R3>::type> >,
                                                     ^
rnnlib4seshat/Helpers.hpp:569:53: error: template argument 1 is invalid
                  typename range_iterator<R3>::type> > >
                                                     ^
rnnlib4seshat/Helpers.hpp:569:55: error: template argument 1 is invalid
                  typename range_iterator<R3>::type> > >
                                                       ^
rnnlib4seshat/Helpers.hpp:569:55: error: template argument 2 is invalid
rnnlib4seshat/Helpers.hpp:586:53: error: template argument 1 is invalid
                  typename range_iterator<R4>::type> >,
                                                     ^
rnnlib4seshat/Helpers.hpp:591:53: error: template argument 1 is invalid
                  typename range_iterator<R4>::type> > >
                                                     ^
rnnlib4seshat/Helpers.hpp:591:55: error: template argument 1 is invalid
                  typename range_iterator<R4>::type> > >
                                                       ^
rnnlib4seshat/Helpers.hpp:591:55: error: template argument 2 is invalid
rnnlib4seshat/Helpers.hpp:611:53: error: template argument 1 is invalid
                  typename range_iterator<R5>::type> >,
                                                     ^
rnnlib4seshat/Helpers.hpp:617:53: error: template argument 1 is invalid
                  typename range_iterator<R5>::type> > >
                                                     ^
rnnlib4seshat/Helpers.hpp:617:55: error: template argument 1 is invalid
                  typename range_iterator<R5>::type> > >
                                                       ^
rnnlib4seshat/Helpers.hpp:617:55: error: template argument 2 is invalid
rnnlib4seshat/Helpers.hpp:807:25: error: reference to ‘tuple’ is ambiguous
     ostream& out, const tuple<T1, T2>& t) {
                         ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:807:30: error: expected ‘,’ or ‘...’ before ‘<’ token
     ostream& out, const tuple<T1, T2>& t) {
                              ^
rnnlib4seshat/Helpers.hpp: In function ‘std::ostream& operator<<(std::ostream&, int)’:
rnnlib4seshat/Helpers.hpp:808:10: error: ‘t’ was not declared in this scope
   out << t.get<0>() << " " << t.get<1>();
          ^
rnnlib4seshat/Helpers.hpp: At global scope:
rnnlib4seshat/Helpers.hpp:812:25: error: reference to ‘tuple’ is ambiguous
     ostream& out, const tuple<T1, T2, T3>& t) {
                         ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:812:30: error: expected ‘,’ or ‘...’ before ‘<’ token
     ostream& out, const tuple<T1, T2, T3>& t) {
                              ^
rnnlib4seshat/Helpers.hpp: In function ‘std::ostream& operator<<(std::ostream&, int)’:
rnnlib4seshat/Helpers.hpp:813:10: error: ‘t’ was not declared in this scope
   out << t.get<0>() << " " << t.get<1>() << " " << t.get<2>();
          ^
rnnlib4seshat/Helpers.hpp: At global scope:
rnnlib4seshat/Helpers.hpp:817:25: error: reference to ‘tuple’ is ambiguous
     ostream& out, const tuple<T1, T2, T3, T4>& t) {
                         ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:817:30: error: expected ‘,’ or ‘...’ before ‘<’ token
     ostream& out, const tuple<T1, T2, T3, T4>& t) {
                              ^
rnnlib4seshat/Helpers.hpp: In function ‘std::ostream& operator<<(std::ostream&, int)’:
rnnlib4seshat/Helpers.hpp:818:10: error: ‘t’ was not declared in this scope
   out << t.get<0>() << " " << t.get<1>() << " " << t.get<2>() << " "
          ^
rnnlib4seshat/Helpers.hpp: At global scope:
rnnlib4seshat/Helpers.hpp:823:50: error: reference to ‘tuple’ is ambiguous
 static ostream& operator << (ostream& out, const tuple<T1, T2, T3, T4, T5>& t) {
                                                  ^~~~~
In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
                 from /usr/include/boost/multi_index/detail/index_base.hpp:28,
                 from /usr/include/boost/multi_index/detail/base_type.hpp:21,
                 from /usr/include/boost/multi_index_container.hpp:34,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;
       ^~~~~
In file included from /usr/include/c++/6.1.1/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/6.1.1/bits/char_traits.h:39,
                 from /usr/include/c++/6.1.1/ios:40,
                 from /usr/include/c++/6.1.1/ostream:38,
                 from /usr/include/c++/6.1.1/iostream:39,
                 from symfeatures.h:25,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_pair.h:83:11: note:                 template<class ...> class std::tuple
     class tuple;
           ^~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp:823:55: error: expected ‘,’ or ‘...’ before ‘<’ token
 static ostream& operator << (ostream& out, const tuple<T1, T2, T3, T4, T5>& t) {
                                                       ^
rnnlib4seshat/Helpers.hpp: In function ‘std::ostream& operator<<(std::ostream&, int)’:
rnnlib4seshat/Helpers.hpp:824:10: error: ‘t’ was not declared in this scope
   out << t.get<0>() << " " << t.get<1>() << " " << t.get<2>() << " "
          ^
In file included from rnnlib4seshat/Layer.hpp:50:0,
                 from rnnlib4seshat/InputLayer.hpp:43,
                 from rnnlib4seshat/Mdrnn.hpp:48,
                 from symrec.h:32,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/WeightContainer.hpp: At global scope:
rnnlib4seshat/WeightContainer.hpp:54:58: error: template argument 2 is invalid
 typedef multimap<string, tuple<string, string, int, int> >::iterator WC_CONN_IT;
                                                          ^
rnnlib4seshat/WeightContainer.hpp:54:58: error: template argument 4 is invalid
rnnlib4seshat/WeightContainer.hpp:54:70: error: expected initializer before ‘WC_CONN_IT’
 typedef multimap<string, tuple<string, string, int, int> >::iterator WC_CONN_IT;
                                                                      ^~~~~~~~~~
rnnlib4seshat/WeightContainer.hpp:55:54: error: template argument 2 is invalid
 typedef pair<string, tuple<string, string, int, int> > WC_CONN_PAIR;
                                                      ^
rnnlib4seshat/WeightContainer.hpp:62:52: error: template argument 2 is invalid
   multimap<string, tuple<string, string, int, int> > connections;
                                                    ^
rnnlib4seshat/WeightContainer.hpp:62:52: error: template argument 4 is invalid
In file included from rnnlib4seshat/Layer.hpp:50:0,
                 from rnnlib4seshat/InputLayer.hpp:43,
                 from rnnlib4seshat/Mdrnn.hpp:48,
                 from symrec.h:32,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/WeightContainer.hpp: In member function ‘void WeightContainer::link_layers(const string&, const string&, const string&, int, int)’:
rnnlib4seshat/WeightContainer.hpp:71:17: error: request for member ‘insert’ in ‘((WeightContainer*)this)->WeightContainer::connections’, which is of non-class type ‘int’
     connections.insert(make_pair(toName, make_tuple(fromName, connName, paramBegin, paramEnd)));
                 ^~~~~~
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<mpl_::bool_<false>, boost::range_const_iterator<int, void>, boost::range_mutable_iterator<int, void> >’:
/usr/include/boost/foreach.hpp:359:13:   required from ‘struct boost::foreach_detail_::foreach_iterator<int, mpl_::bool_<false> >’
/usr/include/boost/foreach.hpp:668:1:   required by substitution of ‘template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*) [with T = int; C = mpl_::bool_<false>]’
rnnlib4seshat/WeightContainer.hpp:113:5:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<mpl_::bool_<false>, boost::range_const_iterator<int, void>, boost::range_mutable_iterator<int, void> >::f_ {aka struct boost::range_mutable_iterator<int, void>}’
     typedef typename f_::type type;
                               ^~~~
In file included from rnnlib4seshat/Helpers.hpp:54:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/WeightContainer.hpp: In member function ‘void WeightContainer::save_by_conns(std::vector<double>&, const string&)’:
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘begin(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<false> >*, boost::mpl::or_<boost::is_rvalue_reference<int&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/WeightContainer.hpp:113:5: note: in expansion of macro ‘LOOP’
     LOOP(const WC_CONN_PAIR& p, connections)
     ^
/usr/include/boost/foreach.hpp:660:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~~~
/usr/include/boost/foreach.hpp:660:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int&>(((WeightContainer*)this)->WeightContainer::connections, 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(((WeightContainer*)this)->WeightContainer::connections)), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(((WeightContainer*)this)->WeightContainer::connections)), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::true_* {aka mpl_::bool_<true>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/WeightContainer.hpp:113:5: note: in expansion of macro ‘LOOP’
     LOOP(const WC_CONN_PAIR& p, connections)
     ^
/usr/include/boost/foreach.hpp:668:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~~~
/usr/include/boost/foreach.hpp:668:1: note:   substitution of deduced template arguments resulted in errors seen above
/usr/include/boost/foreach.hpp:689:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<T*> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~~~
/usr/include/boost/foreach.hpp:689:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/WeightContainer.hpp:113:5: note: in expansion of macro ‘LOOP’
     LOOP(const WC_CONN_PAIR& p, connections)
     ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘end(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<false> >*, boost::mpl::or_<boost::is_rvalue_reference<int&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/WeightContainer.hpp:113:5: note: in expansion of macro ‘LOOP’
     LOOP(const WC_CONN_PAIR& p, connections)
     ^
/usr/include/boost/foreach.hpp:700:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~
/usr/include/boost/foreach.hpp:700:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int&>(((WeightContainer*)this)->WeightContainer::connections, 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(((WeightContainer*)this)->WeightContainer::connections)), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(((WeightContainer*)this)->WeightContainer::connections)), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::true_* {aka mpl_::bool_<true>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/WeightContainer.hpp:113:5: note: in expansion of macro ‘LOOP’
     LOOP(const WC_CONN_PAIR& p, connections)
     ^
/usr/include/boost/foreach.hpp:708:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~
/usr/include/boost/foreach.hpp:708:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:729:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<int> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~
/usr/include/boost/foreach.hpp:729:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/WeightContainer.hpp:113:5: note: in expansion of macro ‘LOOP’
     LOOP(const WC_CONN_PAIR& p, connections)
     ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘deref(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/WeightContainer.hpp:113:5: note: in expansion of macro ‘LOOP’
     LOOP(const WC_CONN_PAIR& p, connections)
     ^
/usr/include/boost/foreach.hpp:768:1: note: candidate: template<class T, class C> typename boost::foreach_detail_::foreach_reference<T, C>::type boost::foreach_detail_::deref(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*)
 deref(auto_any_t cur, type2type<T, C> *)
 ^~~~~
/usr/include/boost/foreach.hpp:768:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp: In substitution of ‘template<class T, class C> typename boost::foreach_detail_::foreach_reference<T, C>::type boost::foreach_detail_::deref(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*) [with T = int; C = mpl_::bool_<false>]’:
rnnlib4seshat/WeightContainer.hpp:113:5:   required from here
/usr/include/boost/foreach.hpp:768:1: error: no type named ‘type’ in ‘struct boost::foreach_detail_::foreach_reference<int, mpl_::bool_<false> >’
In file included from rnnlib4seshat/Layer.hpp:50:0,
                 from rnnlib4seshat/InputLayer.hpp:43,
                 from rnnlib4seshat/Mdrnn.hpp:48,
                 from symrec.h:32,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/WeightContainer.hpp:115:36: error: request for member ‘second’ in ‘p’, which is of non-class type ‘const WC_CONN_PAIR {aka const int}’
  VDI begin = container.begin() + p.second.get<2>();
                                    ^~~~~~
rnnlib4seshat/WeightContainer.hpp:116:34: error: request for member ‘second’ in ‘p’, which is of non-class type ‘const WC_CONN_PAIR {aka const int}’
  VDI end = container.begin() + p.second.get<3>();
                                  ^~~~~~
rnnlib4seshat/WeightContainer.hpp:119:42: error: request for member ‘second’ in ‘p’, which is of non-class type ‘const WC_CONN_PAIR {aka const int}’
      save_range(make_pair(begin, end), p.second.get<1>() + "_" + nam);
                                          ^~~~~~
In file included from rnnlib4seshat/Helpers.hpp:54:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/NeuronLayer.hpp: In member function ‘void NeuronLayer<F>::feed_back(const std::vector<int>&)’:
rnnlib4seshat/NeuronLayer.hpp:71:8: error: ‘TDDD’ was not declared in this scope
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
        ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
In file included from rnnlib4seshat/Mdrnn.hpp:51:0,
                 from symrec.h:32,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/NeuronLayer.hpp:73:4: error: ‘t’ was not declared in this scope
    t.get<0>() = F::deriv(t.get<1>()) * t.get<2>();
    ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<mpl_::bool_<true>, boost::range_const_iterator<int, void>, boost::range_mutable_iterator<int, void> >’:
/usr/include/boost/foreach.hpp:359:13:   required from ‘struct boost::foreach_detail_::foreach_iterator<int, mpl_::bool_<true> >’
/usr/include/boost/foreach.hpp:660:1:   required by substitution of ‘template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*) [with T = int; C = mpl_::bool_<true>]’
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<mpl_::bool_<true>, boost::range_const_iterator<int, void>, boost::range_mutable_iterator<int, void> >::f_ {aka struct boost::range_const_iterator<int, void>}’
     typedef typename f_::type type;
                               ^~~~
In file included from rnnlib4seshat/Helpers.hpp:54:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Mdrnn.hpp: In member function ‘virtual void Mdrnn::build()’:
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘begin(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/Mdrnn.hpp:251:11: note: in expansion of macro ‘LOOP’
           LOOP(TIBI t, zip(sourceDirs, symmetry, dest->directions)) {
           ^
/usr/include/boost/foreach.hpp:660:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~~~
/usr/include/boost/foreach.hpp:660:1: note:   substitution of deduced template arguments resulted in errors seen above
/usr/include/boost/foreach.hpp:668:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~~~
/usr/include/boost/foreach.hpp:668:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<std::vector<int>, std::vector<bool>, std::vector<int> >(sourceDirs, ((Mdrnn*)this)->Mdrnn::symmetry, dest->Layer::directions), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<std::vector<int>, std::vector<bool>, std::vector<int> >(sourceDirs, ((Mdrnn*)this)->Mdrnn::symmetry, dest->Layer::directions))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<std::vector<int>, std::vector<bool>, std::vector<int> >(sourceDirs, ((Mdrnn*)this)->Mdrnn::symmetry, dest->Layer::directions))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/Mdrnn.hpp:251:11: note: in expansion of macro ‘LOOP’
           LOOP(TIBI t, zip(sourceDirs, symmetry, dest->directions)) {
           ^
/usr/include/boost/foreach.hpp:689:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<T*> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~~~
/usr/include/boost/foreach.hpp:689:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/Mdrnn.hpp:251:11: note: in expansion of macro ‘LOOP’
           LOOP(TIBI t, zip(sourceDirs, symmetry, dest->directions)) {
           ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘end(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/Mdrnn.hpp:251:11: note: in expansion of macro ‘LOOP’
           LOOP(TIBI t, zip(sourceDirs, symmetry, dest->directions)) {
           ^
/usr/include/boost/foreach.hpp:700:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~
/usr/include/boost/foreach.hpp:700:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:708:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~
/usr/include/boost/foreach.hpp:708:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<std::vector<int>, std::vector<bool>, std::vector<int> >(sourceDirs, ((Mdrnn*)this)->Mdrnn::symmetry, dest->Layer::directions), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<std::vector<int>, std::vector<bool>, std::vector<int> >(sourceDirs, ((Mdrnn*)this)->Mdrnn::symmetry, dest->Layer::directions))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<std::vector<int>, std::vector<bool>, std::vector<int> >(sourceDirs, ((Mdrnn*)this)->Mdrnn::symmetry, dest->Layer::directions))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/Mdrnn.hpp:251:11: note: in expansion of macro ‘LOOP’
           LOOP(TIBI t, zip(sourceDirs, symmetry, dest->directions)) {
           ^
/usr/include/boost/foreach.hpp:729:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<int> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~
/usr/include/boost/foreach.hpp:729:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/Mdrnn.hpp:251:11: note: in expansion of macro ‘LOOP’
           LOOP(TIBI t, zip(sourceDirs, symmetry, dest->directions)) {
           ^
rnnlib4seshat/Mdrnn.hpp:251:16: error: ‘TIBI’ was not declared in this scope
           LOOP(TIBI t, zip(sourceDirs, symmetry, dest->directions)) {
                ^
rnnlib4seshat/Mdrnn.hpp:251:11: note: in expansion of macro ‘LOOP’
           LOOP(TIBI t, zip(sourceDirs, symmetry, dest->directions)) {
           ^
In file included from symrec.h:32:0,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Mdrnn.hpp:252:13: error: ‘t’ was not declared in this scope
             t.get<0>() = (((t.get<1>() > 0) || t.get<2>()) ? 1 : -1);
             ^
In file included from rnnlib4seshat/Helpers.hpp:54:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/SoftmaxLayer.hpp: In member function ‘virtual void SoftmaxLayer::feed_forward(const std::vector<int>&)’:
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘begin(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:81:3: note: in expansion of macro ‘LOOP’
   LOOP(TDL t, zip(this->inputActivations[coords], unnormedLogActs))
   ^
/usr/include/boost/foreach.hpp:660:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~~~
/usr/include/boost/foreach.hpp:660:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:668:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~~~
/usr/include/boost/foreach.hpp:668:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, View<Log<double> > >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), unnormedLogActs), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, View<Log<double> > >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), unnormedLogActs))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, View<Log<double> > >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), unnormedLogActs))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:81:3: note: in expansion of macro ‘LOOP’
   LOOP(TDL t, zip(this->inputActivations[coords], unnormedLogActs))
   ^
/usr/include/boost/foreach.hpp:689:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<T*> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~~~
/usr/include/boost/foreach.hpp:689:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:81:3: note: in expansion of macro ‘LOOP’
   LOOP(TDL t, zip(this->inputActivations[coords], unnormedLogActs))
   ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘end(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:81:3: note: in expansion of macro ‘LOOP’
   LOOP(TDL t, zip(this->inputActivations[coords], unnormedLogActs))
   ^
/usr/include/boost/foreach.hpp:700:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~
/usr/include/boost/foreach.hpp:700:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:708:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~
/usr/include/boost/foreach.hpp:708:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, View<Log<double> > >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), unnormedLogActs), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, View<Log<double> > >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), unnormedLogActs))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, View<Log<double> > >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), unnormedLogActs))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:81:3: note: in expansion of macro ‘LOOP’
   LOOP(TDL t, zip(this->inputActivations[coords], unnormedLogActs))
   ^
/usr/include/boost/foreach.hpp:729:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<int> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~
/usr/include/boost/foreach.hpp:729:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:81:3: note: in expansion of macro ‘LOOP’
   LOOP(TDL t, zip(this->inputActivations[coords], unnormedLogActs))
   ^
rnnlib4seshat/SoftmaxLayer.hpp:81:8: error: ‘TDL’ was not declared in this scope
   LOOP(TDL t, zip(this->inputActivations[coords], unnormedLogActs))
        ^
rnnlib4seshat/SoftmaxLayer.hpp:81:3: note: in expansion of macro ‘LOOP’
   LOOP(TDL t, zip(this->inputActivations[coords], unnormedLogActs))
   ^
In file included from rnnlib4seshat/ClassificationLayer.hpp:43:0,
                 from rnnlib4seshat/MultilayerNet.hpp:44,
                 from symrec.h:33,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/SoftmaxLayer.hpp:83:4: error: ‘t’ was not declared in this scope
    t.get<1>() = Log<real_t>(t.get<0>() - offset, true);
    ^
In file included from rnnlib4seshat/Helpers.hpp:54:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/SoftmaxLayer.hpp: In member function ‘virtual void SoftmaxLayer::feed_back(const std::vector<int>&)’:
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘begin(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:100:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], outActs, outErrs))
   ^
/usr/include/boost/foreach.hpp:660:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~~~
/usr/include/boost/foreach.hpp:660:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:668:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~~~
/usr/include/boost/foreach.hpp:668:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, View<double>, View<double> >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), outActs, outErrs), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, View<double>, View<double> >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), outActs, outErrs))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, View<double>, View<double> >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), outActs, outErrs))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:100:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], outActs, outErrs))
   ^
/usr/include/boost/foreach.hpp:689:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<T*> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~~~
/usr/include/boost/foreach.hpp:689:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:100:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], outActs, outErrs))
   ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘end(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:100:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], outActs, outErrs))
   ^
/usr/include/boost/foreach.hpp:700:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~
/usr/include/boost/foreach.hpp:700:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:708:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~
/usr/include/boost/foreach.hpp:708:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, View<double>, View<double> >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), outActs, outErrs), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, View<double>, View<double> >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), outActs, outErrs))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, View<double>, View<double> >(((SoftmaxLayer*)this)->SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), outActs, outErrs))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:100:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], outActs, outErrs))
   ^
/usr/include/boost/foreach.hpp:729:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<int> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~
/usr/include/boost/foreach.hpp:729:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/SoftmaxLayer.hpp:100:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], outActs, outErrs))
   ^
rnnlib4seshat/SoftmaxLayer.hpp:100:8: error: ‘TDDD’ was not declared in this scope
   LOOP(TDDD t, zip(this->inputErrors[coords], outActs, outErrs))
        ^
rnnlib4seshat/SoftmaxLayer.hpp:100:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], outActs, outErrs))
   ^
In file included from rnnlib4seshat/ClassificationLayer.hpp:43:0,
                 from rnnlib4seshat/MultilayerNet.hpp:44,
                 from symrec.h:33,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/SoftmaxLayer.hpp:102:4: error: ‘t’ was not declared in this scope
    t.get<0>() = t.get<1>() * (t.get<2>() - Z);
    ^
In file included from rnnlib4seshat/Helpers.hpp:54:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/TranscriptionLayer.hpp: In member function ‘virtual real_t TranscriptionLayer::calculate_errors(const DataSequence&)’:
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘begin(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/TranscriptionLayer.hpp:248:4: note: in expansion of macro ‘LOOP’
    LOOP(TDLL t, zip(outputErrors[time], dEdYTerms, logActivations[time]))
    ^
/usr/include/boost/foreach.hpp:660:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~~~
/usr/include/boost/foreach.hpp:660:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:668:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~~~
/usr/include/boost/foreach.hpp:668:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, std::vector<Log<double>, std::allocator<Log<double> > >, const View<Log<double> > >(((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<T>::operator[]<double>(time), ((TranscriptionLayer*)this)->TranscriptionLayer::dEdYTerms, ((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::logActivations.SeqBuffer<T>::operator[]<Log<double> >(time)), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, std::vector<Log<double>, std::allocator<Log<double> > >, const View<Log<double> > >(((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<T>::operator[]<double>(time), ((TranscriptionLayer*)this)->TranscriptionLayer::dEdYTerms, ((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::logActivations.SeqBuffer<T>::operator[]<Log<double> >(time)))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, std::vector<Log<double>, std::allocator<Log<double> > >, const View<Log<double> > >(((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<T>::operator[]<double>(time), ((TranscriptionLayer*)this)->TranscriptionLayer::dEdYTerms, ((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::logActivations.SeqBuffer<T>::operator[]<Log<double> >(time)))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/TranscriptionLayer.hpp:248:4: note: in expansion of macro ‘LOOP’
    LOOP(TDLL t, zip(outputErrors[time], dEdYTerms, logActivations[time]))
    ^
/usr/include/boost/foreach.hpp:689:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<T*> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~~~
/usr/include/boost/foreach.hpp:689:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/TranscriptionLayer.hpp:248:4: note: in expansion of macro ‘LOOP’
    LOOP(TDLL t, zip(outputErrors[time], dEdYTerms, logActivations[time]))
    ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘end(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/TranscriptionLayer.hpp:248:4: note: in expansion of macro ‘LOOP’
    LOOP(TDLL t, zip(outputErrors[time], dEdYTerms, logActivations[time]))
    ^
/usr/include/boost/foreach.hpp:700:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~
/usr/include/boost/foreach.hpp:700:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:708:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~
/usr/include/boost/foreach.hpp:708:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, std::vector<Log<double>, std::allocator<Log<double> > >, const View<Log<double> > >(((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<T>::operator[]<double>(time), ((TranscriptionLayer*)this)->TranscriptionLayer::dEdYTerms, ((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::logActivations.SeqBuffer<T>::operator[]<Log<double> >(time)), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, std::vector<Log<double>, std::allocator<Log<double> > >, const View<Log<double> > >(((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<T>::operator[]<double>(time), ((TranscriptionLayer*)this)->TranscriptionLayer::dEdYTerms, ((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::logActivations.SeqBuffer<T>::operator[]<Log<double> >(time)))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, std::vector<Log<double>, std::allocator<Log<double> > >, const View<Log<double> > >(((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<T>::operator[]<double>(time), ((TranscriptionLayer*)this)->TranscriptionLayer::dEdYTerms, ((TranscriptionLayer*)this)->TranscriptionLayer::<anonymous>.SoftmaxLayer::logActivations.SeqBuffer<T>::operator[]<Log<double> >(time)))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/TranscriptionLayer.hpp:248:4: note: in expansion of macro ‘LOOP’
    LOOP(TDLL t, zip(outputErrors[time], dEdYTerms, logActivations[time]))
    ^
/usr/include/boost/foreach.hpp:729:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<int> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~
/usr/include/boost/foreach.hpp:729:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/TranscriptionLayer.hpp:248:4: note: in expansion of macro ‘LOOP’
    LOOP(TDLL t, zip(outputErrors[time], dEdYTerms, logActivations[time]))
    ^
rnnlib4seshat/TranscriptionLayer.hpp:248:9: error: ‘TDLL’ was not declared in this scope
    LOOP(TDLL t, zip(outputErrors[time], dEdYTerms, logActivations[time]))
         ^
rnnlib4seshat/TranscriptionLayer.hpp:248:4: note: in expansion of macro ‘LOOP’
    LOOP(TDLL t, zip(outputErrors[time], dEdYTerms, logActivations[time]))
    ^
In file included from rnnlib4seshat/MultilayerNet.hpp:45:0,
                 from symrec.h:33,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/TranscriptionLayer.hpp:250:5: error: ‘t’ was not declared in this scope
     t.get<0>() = -((t.get<1>() / (logProb * t.get<2>())).exp());
     ^
In file included from /usr/include/boost/mpl/aux_/insert_impl.hpp:19:0,
                 from /usr/include/boost/mpl/insert.hpp:19,
                 from /usr/include/boost/mpl/set/aux_/insert_range_impl.hpp:21,
                 from /usr/include/boost/mpl/set/set0.hpp:24,
                 from /usr/include/boost/multi_index/detail/no_duplicate_tags.hpp:18,
                 from /usr/include/boost/multi_index/tag.hpp:17,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/clear.hpp: In instantiation of ‘struct boost::mpl::clear<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’:
/usr/include/boost/mpl/transform.hpp:113:1:   required from ‘struct boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>’
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = std::vector<int>; R2 = std::vector<bool>; R3 = std::vector<int>]’
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
/usr/include/boost/mpl/clear.hpp:28:8: error: no class template named ‘apply’ in ‘struct boost::mpl::clear_impl<boost::mpl::non_sequence_tag>’
 struct clear
        ^~~~~
In file included from /usr/include/boost/mpl/transform.hpp:28:0,
                 from /usr/include/boost/multi_index/tag.hpp:19,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/transform.hpp: In instantiation of ‘struct boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>’:
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = std::vector<int>; R2 = std::vector<bool>; R3 = std::vector<int>]’
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
/usr/include/boost/mpl/transform.hpp:113:1: error: no type named ‘type’ in ‘struct boost::mpl::clear<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
 BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
 ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’:
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = std::vector<int>; R2 = std::vector<bool>; R3 = std::vector<int>]’
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >::f_ {aka struct boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>}’
     typedef typename f_::type type;
                               ^~~~
In file included from /usr/include/boost/multi_index_container.hpp:24:0,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/at.hpp: In instantiation of ‘struct boost::mpl::at_c<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, 0l>’:
/usr/include/boost/iterator/zip_iterator.hpp:180:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = std::vector<int>; R2 = std::vector<bool>; R3 = std::vector<int>]’
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
/usr/include/boost/mpl/at.hpp:42:8: error: no class template named ‘apply’ in ‘struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>’
 struct at_c
        ^~~~
In file included from rnnlib4seshat/Helpers.hpp:50:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/iterator/zip_iterator.hpp: In instantiation of ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’:
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = std::vector<int>; R2 = std::vector<bool>; R3 = std::vector<int>]’
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
/usr/include/boost/iterator/zip_iterator.hpp:180:17: error: no type named ‘type’ in ‘struct boost::mpl::at_c<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, 0l>’
         >::type difference_type;
                 ^~~~~~~~~~~~~~~
In file included from /usr/include/boost/mpl/transform.hpp:28:0,
                 from /usr/include/boost/multi_index/tag.hpp:19,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/transform.hpp: In instantiation of ‘struct boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>’:
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:130:15:   required from ‘struct boost::iterators::detail::minimum_traversal_category_in_iterator_tuple<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:187:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = std::vector<int>; R2 = std::vector<bool>; R3 = std::vector<int>]’
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
/usr/include/boost/mpl/transform.hpp:113:1: error: no type named ‘type’ in ‘struct boost::mpl::clear<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
 BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
 ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >’:
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:130:15:   required from ‘struct boost::iterators::detail::minimum_traversal_category_in_iterator_tuple<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:187:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = std::vector<int>; R2 = std::vector<bool>; R3 = std::vector<int>]’
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >::f_ {aka struct boost::mpl::transform1<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > >, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>}’
     typedef typename f_::type type;
                               ^~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘int zip(R1&, R2&, R3&) [with R1 = std::vector<int>; R2 = std::vector<bool>; R3 = std::vector<int>]’:
rnnlib4seshat/Mdrnn.hpp:251:11:   required from here
rnnlib4seshat/Helpers.hpp:578:54: error: cannot convert ‘std::pair<boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > >, boost::iterators::zip_iterator<std::tuple<__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, std::_Bit_iterator, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > > > > >’ to ‘int’ in return
           boost::end(r3) - (boost::size(r3) - size))));
                                                      ^
rnnlib4seshat/Helpers.hpp: In instantiation of ‘std::pair<typename boost::range_value<T>::type, typename boost::range_value<T>::type> minmax(const R&) [with R = View<double>; typename boost::range_value<T>::type = double]’:
rnnlib4seshat/SoftmaxLayer.hpp:80:66:   required from here
rnnlib4seshat/Helpers.hpp:411:63: error: call of overloaded ‘minmax_element(boost::range_detail::extract_const_iterator<View<double>, true>::type, boost::range_detail::extract_const_iterator<View<double>, true>::type)’ is ambiguous
     typename range_const_iterator<R>::type> p = minmax_element(
                                                 ~~~~~~~~~~~~~~^
         boost::begin(r), boost::end(r));
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
In file included from rnnlib4seshat/Helpers.hpp:52:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/algorithm/minmax_element.hpp:123:3: note: candidate: std::pair<_FIter, _FIter> boost::minmax_element(ForwardIter, ForwardIter) [with ForwardIter = double*]
   minmax_element(ForwardIter first, ForwardIter last)
   ^~~~~~~~~~~~~~
In file included from /usr/include/c++/6.1.1/algorithm:62:0,
                 from /usr/include/boost/multi_index_container.hpp:19,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_algo.h:3407:5: note: candidate: constexpr std::pair<_FIter, _FIter> std::minmax_element(_FIter, _FIter) [with _FIter = double*]
     minmax_element(_ForwardIterator __first, _ForwardIterator __last)
     ^~~~~~~~~~~~~~
In file included from /usr/include/boost/mpl/aux_/insert_impl.hpp:19:0,
                 from /usr/include/boost/mpl/insert.hpp:19,
                 from /usr/include/boost/mpl/set/aux_/insert_range_impl.hpp:21,
                 from /usr/include/boost/mpl/set/set0.hpp:24,
                 from /usr/include/boost/multi_index/detail/no_duplicate_tags.hpp:18,
                 from /usr/include/boost/multi_index/tag.hpp:17,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/clear.hpp: In instantiation of ‘struct boost::mpl::clear<std::tuple<double*, Log<double>*> >’:
/usr/include/boost/mpl/transform.hpp:113:1:   required from ‘struct boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>’
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:555:24:   required from ‘int zip(R1&, R2&) [with R1 = const View<double>; R2 = View<Log<double> >]’
rnnlib4seshat/SoftmaxLayer.hpp:81:3:   required from here
/usr/include/boost/mpl/clear.hpp:28:8: error: no class template named ‘apply’ in ‘struct boost::mpl::clear_impl<boost::mpl::non_sequence_tag>’
 struct clear
        ^~~~~
In file included from /usr/include/boost/mpl/transform.hpp:28:0,
                 from /usr/include/boost/multi_index/tag.hpp:19,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/transform.hpp: In instantiation of ‘struct boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>’:
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:555:24:   required from ‘int zip(R1&, R2&) [with R1 = const View<double>; R2 = View<Log<double> >]’
rnnlib4seshat/SoftmaxLayer.hpp:81:3:   required from here
/usr/include/boost/mpl/transform.hpp:113:1: error: no type named ‘type’ in ‘struct boost::mpl::clear<std::tuple<double*, Log<double>*> >’
 BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
 ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’:
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:555:24:   required from ‘int zip(R1&, R2&) [with R1 = const View<double>; R2 = View<Log<double> >]’
rnnlib4seshat/SoftmaxLayer.hpp:81:3:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >::f_ {aka struct boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>}’
     typedef typename f_::type type;
                               ^~~~
In file included from /usr/include/boost/multi_index_container.hpp:24:0,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/at.hpp: In instantiation of ‘struct boost::mpl::at_c<std::tuple<double*, Log<double>*>, 0l>’:
/usr/include/boost/iterator/zip_iterator.hpp:180:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:555:24:   required from ‘int zip(R1&, R2&) [with R1 = const View<double>; R2 = View<Log<double> >]’
rnnlib4seshat/SoftmaxLayer.hpp:81:3:   required from here
/usr/include/boost/mpl/at.hpp:42:8: error: no class template named ‘apply’ in ‘struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>’
 struct at_c
        ^~~~
In file included from rnnlib4seshat/Helpers.hpp:50:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/iterator/zip_iterator.hpp: In instantiation of ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, Log<double>*> >’:
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:555:24:   required from ‘int zip(R1&, R2&) [with R1 = const View<double>; R2 = View<Log<double> >]’
rnnlib4seshat/SoftmaxLayer.hpp:81:3:   required from here
/usr/include/boost/iterator/zip_iterator.hpp:180:17: error: no type named ‘type’ in ‘struct boost::mpl::at_c<std::tuple<double*, Log<double>*>, 0l>’
         >::type difference_type;
                 ^~~~~~~~~~~~~~~
In file included from /usr/include/boost/mpl/transform.hpp:28:0,
                 from /usr/include/boost/multi_index/tag.hpp:19,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/transform.hpp: In instantiation of ‘struct boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>’:
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:130:15:   required from ‘struct boost::iterators::detail::minimum_traversal_category_in_iterator_tuple<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:187:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:555:24:   required from ‘int zip(R1&, R2&) [with R1 = const View<double>; R2 = View<Log<double> >]’
rnnlib4seshat/SoftmaxLayer.hpp:81:3:   required from here
/usr/include/boost/mpl/transform.hpp:113:1: error: no type named ‘type’ in ‘struct boost::mpl::clear<std::tuple<double*, Log<double>*> >’
 BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
 ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >’:
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:130:15:   required from ‘struct boost::iterators::detail::minimum_traversal_category_in_iterator_tuple<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:187:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:555:24:   required from ‘int zip(R1&, R2&) [with R1 = const View<double>; R2 = View<Log<double> >]’
rnnlib4seshat/SoftmaxLayer.hpp:81:3:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >::f_ {aka struct boost::mpl::transform1<std::tuple<double*, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>}’
     typedef typename f_::type type;
                               ^~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘int zip(R1&, R2&) [with R1 = const View<double>; R2 = View<Log<double> >]’:
rnnlib4seshat/SoftmaxLayer.hpp:81:3:   required from here
rnnlib4seshat/Helpers.hpp:558:54: error: cannot convert ‘std::pair<boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> >, boost::iterators::zip_iterator<std::tuple<double*, Log<double>*> > >’ to ‘int’ in return
           boost::end(r2) - (boost::size(r2) - size))));
                                                      ^
In file included from /usr/include/boost/mpl/aux_/insert_impl.hpp:19:0,
                 from /usr/include/boost/mpl/insert.hpp:19,
                 from /usr/include/boost/mpl/set/aux_/insert_range_impl.hpp:21,
                 from /usr/include/boost/mpl/set/set0.hpp:24,
                 from /usr/include/boost/multi_index/detail/no_duplicate_tags.hpp:18,
                 from /usr/include/boost/multi_index/tag.hpp:17,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/clear.hpp: In instantiation of ‘struct boost::mpl::clear<std::tuple<double*, double*, double*> >’:
/usr/include/boost/mpl/transform.hpp:113:1:   required from ‘struct boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>’
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = View<double>; R3 = View<double>]’
rnnlib4seshat/SoftmaxLayer.hpp:100:3:   required from here
/usr/include/boost/mpl/clear.hpp:28:8: error: no class template named ‘apply’ in ‘struct boost::mpl::clear_impl<boost::mpl::non_sequence_tag>’
 struct clear
        ^~~~~
In file included from /usr/include/boost/mpl/transform.hpp:28:0,
                 from /usr/include/boost/multi_index/tag.hpp:19,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/transform.hpp: In instantiation of ‘struct boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>’:
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = View<double>; R3 = View<double>]’
rnnlib4seshat/SoftmaxLayer.hpp:100:3:   required from here
/usr/include/boost/mpl/transform.hpp:113:1: error: no type named ‘type’ in ‘struct boost::mpl::clear<std::tuple<double*, double*, double*> >’
 BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
 ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’:
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = View<double>; R3 = View<double>]’
rnnlib4seshat/SoftmaxLayer.hpp:100:3:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >::f_ {aka struct boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>}’
     typedef typename f_::type type;
                               ^~~~
In file included from /usr/include/boost/multi_index_container.hpp:24:0,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/at.hpp: In instantiation of ‘struct boost::mpl::at_c<std::tuple<double*, double*, double*>, 0l>’:
/usr/include/boost/iterator/zip_iterator.hpp:180:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = View<double>; R3 = View<double>]’
rnnlib4seshat/SoftmaxLayer.hpp:100:3:   required from here
/usr/include/boost/mpl/at.hpp:42:8: error: no class template named ‘apply’ in ‘struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>’
 struct at_c
        ^~~~
In file included from rnnlib4seshat/Helpers.hpp:50:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/iterator/zip_iterator.hpp: In instantiation of ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, double*, double*> >’:
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = View<double>; R3 = View<double>]’
rnnlib4seshat/SoftmaxLayer.hpp:100:3:   required from here
/usr/include/boost/iterator/zip_iterator.hpp:180:17: error: no type named ‘type’ in ‘struct boost::mpl::at_c<std::tuple<double*, double*, double*>, 0l>’
         >::type difference_type;
                 ^~~~~~~~~~~~~~~
In file included from /usr/include/boost/mpl/transform.hpp:28:0,
                 from /usr/include/boost/multi_index/tag.hpp:19,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/transform.hpp: In instantiation of ‘struct boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>’:
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:130:15:   required from ‘struct boost::iterators::detail::minimum_traversal_category_in_iterator_tuple<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:187:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = View<double>; R3 = View<double>]’
rnnlib4seshat/SoftmaxLayer.hpp:100:3:   required from here
/usr/include/boost/mpl/transform.hpp:113:1: error: no type named ‘type’ in ‘struct boost::mpl::clear<std::tuple<double*, double*, double*> >’
 BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
 ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >’:
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:130:15:   required from ‘struct boost::iterators::detail::minimum_traversal_category_in_iterator_tuple<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:187:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, double*, double*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = View<double>; R3 = View<double>]’
rnnlib4seshat/SoftmaxLayer.hpp:100:3:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >::f_ {aka struct boost::mpl::transform1<std::tuple<double*, double*, double*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>}’
     typedef typename f_::type type;
                               ^~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = View<double>; R3 = View<double>]’:
rnnlib4seshat/SoftmaxLayer.hpp:100:3:   required from here
rnnlib4seshat/Helpers.hpp:578:54: error: cannot convert ‘std::pair<boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >, boost::iterators::zip_iterator<std::tuple<double*, double*, double*> > >’ to ‘int’ in return
           boost::end(r3) - (boost::size(r3) - size))));
                                                      ^
In file included from /usr/include/boost/mpl/aux_/insert_impl.hpp:19:0,
                 from /usr/include/boost/mpl/insert.hpp:19,
                 from /usr/include/boost/mpl/set/aux_/insert_range_impl.hpp:21,
                 from /usr/include/boost/mpl/set/set0.hpp:24,
                 from /usr/include/boost/multi_index/detail/no_duplicate_tags.hpp:18,
                 from /usr/include/boost/multi_index/tag.hpp:17,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/clear.hpp: In instantiation of ‘struct boost::mpl::clear<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’:
/usr/include/boost/mpl/transform.hpp:113:1:   required from ‘struct boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>’
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = std::vector<Log<double>, std::allocator<Log<double> > >; R3 = const View<Log<double> >]’
rnnlib4seshat/TranscriptionLayer.hpp:248:4:   required from here
/usr/include/boost/mpl/clear.hpp:28:8: error: no class template named ‘apply’ in ‘struct boost::mpl::clear_impl<boost::mpl::non_sequence_tag>’
 struct clear
        ^~~~~
In file included from /usr/include/boost/mpl/transform.hpp:28:0,
                 from /usr/include/boost/multi_index/tag.hpp:19,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/transform.hpp: In instantiation of ‘struct boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>’:
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = std::vector<Log<double>, std::allocator<Log<double> > >; R3 = const View<Log<double> >]’
rnnlib4seshat/TranscriptionLayer.hpp:248:4:   required from here
/usr/include/boost/mpl/transform.hpp:113:1: error: no type named ‘type’ in ‘struct boost::mpl::clear<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
 BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
 ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >’:
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:103:12:   required from ‘struct boost::iterators::detail::tuple_of_references<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:172:58:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = std::vector<Log<double>, std::allocator<Log<double> > >; R3 = const View<Log<double> >]’
rnnlib4seshat/TranscriptionLayer.hpp:248:4:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::iterator_reference<mpl_::arg<1> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::iterator_reference<mpl_::arg<1> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na, mpl_::na> >::f_ {aka struct boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::iterator_reference<mpl_::arg<1> >, mpl_::na>}’
     typedef typename f_::type type;
                               ^~~~
In file included from /usr/include/boost/multi_index_container.hpp:24:0,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/at.hpp: In instantiation of ‘struct boost::mpl::at_c<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, 0l>’:
/usr/include/boost/iterator/zip_iterator.hpp:180:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = std::vector<Log<double>, std::allocator<Log<double> > >; R3 = const View<Log<double> >]’
rnnlib4seshat/TranscriptionLayer.hpp:248:4:   required from here
/usr/include/boost/mpl/at.hpp:42:8: error: no class template named ‘apply’ in ‘struct boost::mpl::at_impl<boost::mpl::non_sequence_tag>’
 struct at_c
        ^~~~
In file included from rnnlib4seshat/Helpers.hpp:50:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/iterator/zip_iterator.hpp: In instantiation of ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’:
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = std::vector<Log<double>, std::allocator<Log<double> > >; R3 = const View<Log<double> >]’
rnnlib4seshat/TranscriptionLayer.hpp:248:4:   required from here
/usr/include/boost/iterator/zip_iterator.hpp:180:17: error: no type named ‘type’ in ‘struct boost::mpl::at_c<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, 0l>’
         >::type difference_type;
                 ^~~~~~~~~~~~~~~
In file included from /usr/include/boost/mpl/transform.hpp:28:0,
                 from /usr/include/boost/multi_index/tag.hpp:19,
                 from /usr/include/boost/multi_index/detail/ord_index_args.hpp:21,
                 from /usr/include/boost/multi_index/ordered_index_fwd.hpp:16,
                 from /usr/include/boost/multi_index_container_fwd.hpp:19,
                 from /usr/include/boost/multi_index_container.hpp:31,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/transform.hpp: In instantiation of ‘struct boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>’:
/usr/include/boost/mpl/eval_if.hpp:38:31:   required from ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >’
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:130:15:   required from ‘struct boost::iterators::detail::minimum_traversal_category_in_iterator_tuple<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:187:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = std::vector<Log<double>, std::allocator<Log<double> > >; R3 = const View<Log<double> >]’
rnnlib4seshat/TranscriptionLayer.hpp:248:4:   required from here
/usr/include/boost/mpl/transform.hpp:113:1: error: no type named ‘type’ in ‘struct boost::mpl::clear<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
 BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1)
 ^
In file included from /usr/include/boost/serialization/level.hpp:28:0,
                 from /usr/include/boost/serialization/nvp.hpp:27,
                 from /usr/include/boost/bimap/bimap.hpp:57,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >’:
/usr/include/boost/mpl/transform.hpp:138:1:   required from ‘struct boost::mpl::transform<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na>’
/usr/include/boost/iterator/zip_iterator.hpp:130:15:   required from ‘struct boost::iterators::detail::minimum_traversal_category_in_iterator_tuple<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:187:17:   required from ‘struct boost::iterators::detail::zip_iterator_base<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
/usr/include/boost/iterator/zip_iterator.hpp:237:9:   required from ‘class boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >’
rnnlib4seshat/Helpers.hpp:573:24:   required from ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = std::vector<Log<double>, std::allocator<Log<double> > >; R3 = const View<Log<double> >]’
rnnlib4seshat/TranscriptionLayer.hpp:248:4:   required from here
/usr/include/boost/mpl/eval_if.hpp:38:31: error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::mpl::or_<boost::mpl::is_na<mpl_::na>, boost::mpl::is_lambda_expression<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > >, boost::mpl::not_<boost::mpl::is_sequence<boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> > > >, mpl_::bool_<false>, mpl_::bool_<false> >, boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>, boost::mpl::transform2<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na, mpl_::na> >::f_ {aka struct boost::mpl::transform1<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*>, boost::iterators::pure_traversal_tag<boost::iterators::iterator_traversal<> >, mpl_::na>}’
     typedef typename f_::type type;
                               ^~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = std::vector<Log<double>, std::allocator<Log<double> > >; R3 = const View<Log<double> >]’:
rnnlib4seshat/TranscriptionLayer.hpp:248:4:   required from here
rnnlib4seshat/Helpers.hpp:578:54: error: cannot convert ‘std::pair<boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> >, boost::iterators::zip_iterator<std::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*> > >’ to ‘int’ in return
           boost::end(r3) - (boost::size(r3) - size))));
                                                      ^
rnnlib4seshat/Helpers.hpp: In instantiation of ‘std::pair<typename boost::range_value<T>::type, typename boost::range_value<T>::type> minmax(const R&) [with R = std::vector<double>; typename boost::range_value<T>::type = double]’:
rnnlib4seshat/Rprop.hpp:113:7:   required from here
rnnlib4seshat/Helpers.hpp:411:63: error: call of overloaded ‘minmax_element(boost::range_detail::extract_const_iterator<std::vector<double>, true>::type, boost::range_detail::extract_const_iterator<std::vector<double>, true>::type)’ is ambiguous
     typename range_const_iterator<R>::type> p = minmax_element(
                                                 ~~~~~~~~~~~~~~^
         boost::begin(r), boost::end(r));
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
In file included from rnnlib4seshat/Helpers.hpp:52:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/algorithm/minmax_element.hpp:123:3: note: candidate: std::pair<_FIter, _FIter> boost::minmax_element(ForwardIter, ForwardIter) [with ForwardIter = __gnu_cxx::__normal_iterator<const double*, std::vector<double> >]
   minmax_element(ForwardIter first, ForwardIter last)
   ^~~~~~~~~~~~~~
In file included from /usr/include/c++/6.1.1/algorithm:62:0,
                 from /usr/include/boost/multi_index_container.hpp:19,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_algo.h:3407:5: note: candidate: constexpr std::pair<_FIter, _FIter> std::minmax_element(_FIter, _FIter) [with _FIter = __gnu_cxx::__normal_iterator<const double*, std::vector<double> >]
     minmax_element(_ForwardIterator __first, _ForwardIterator __last)
     ^~~~~~~~~~~~~~
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘std::pair<typename boost::range_value<T>::type, typename boost::range_value<T>::type> minmax(const R&) [with R = Vector<double>; typename boost::range_value<T>::type = double]’:
rnnlib4seshat/Trainer.hpp:262:5:   required from here
rnnlib4seshat/Helpers.hpp:411:63: error: call of overloaded ‘minmax_element(boost::range_detail::extract_const_iterator<Vector<double>, true>::type, boost::range_detail::extract_const_iterator<Vector<double>, true>::type)’ is ambiguous
     typename range_const_iterator<R>::type> p = minmax_element(
                                                 ~~~~~~~~~~~~~~^
         boost::begin(r), boost::end(r));
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                        
In file included from rnnlib4seshat/Helpers.hpp:52:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/boost/algorithm/minmax_element.hpp:123:3: note: candidate: std::pair<_FIter, _FIter> boost::minmax_element(ForwardIter, ForwardIter) [with ForwardIter = __gnu_cxx::__normal_iterator<const double*, std::vector<double> >]
   minmax_element(ForwardIter first, ForwardIter last)
   ^~~~~~~~~~~~~~
In file included from /usr/include/c++/6.1.1/algorithm:62:0,
                 from /usr/include/boost/multi_index_container.hpp:19,
                 from /usr/include/boost/bimap/detail/bimap_core.hpp:34,
                 from /usr/include/boost/bimap/bimap.hpp:61,
                 from /usr/include/boost/bimap.hpp:13,
                 from rnnlib4seshat/DataSequence.hpp:47,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
/usr/include/c++/6.1.1/bits/stl_algo.h:3407:5: note: candidate: constexpr std::pair<_FIter, _FIter> std::minmax_element(_FIter, _FIter) [with _FIter = __gnu_cxx::__normal_iterator<const double*, std::vector<double> >]
     minmax_element(_ForwardIterator __first, _ForwardIterator __last)
     ^~~~~~~~~~~~~~
In file included from rnnlib4seshat/Layer.hpp:49:0,
                 from rnnlib4seshat/InputLayer.hpp:43,
                 from rnnlib4seshat/Mdrnn.hpp:48,
                 from symrec.h:32,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/DataExporter.hpp: In instantiation of ‘bool ParamVal<T>::load(std::istream&, std::ostream&) [with T = int; std::istream = std::basic_istream<char>; std::ostream = std::basic_ostream<char>]’:
symfeatures.cc:218:1:   required from here
rnnlib4seshat/DataExporter.hpp:117:24: error: cannot convert ‘std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}’ to ‘bool’ in return
     return (in >> param);
                        ^
rnnlib4seshat/DataExporter.hpp: In instantiation of ‘bool ParamVal<T>::load(std::istream&, std::ostream&) [with T = double; std::istream = std::basic_istream<char>; std::ostream = std::basic_ostream<char>]’:
symfeatures.cc:218:1:   required from here
rnnlib4seshat/DataExporter.hpp:117:24: error: cannot convert ‘std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}’ to ‘bool’ in return
In file included from rnnlib4seshat/Helpers.hpp:54:0,
                 from rnnlib4seshat/DataSequence.hpp:48,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/NeuronLayer.hpp: In instantiation of ‘void NeuronLayer<F>::feed_back(const std::vector<int>&) [with F = Logistic]’:
symfeatures.cc:218:1:   required from here
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘begin(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:660:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~~~
/usr/include/boost/foreach.hpp:660:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:668:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~~~
/usr/include/boost/foreach.hpp:668:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:689:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<T*> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~~~
/usr/include/boost/foreach.hpp:689:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘end(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:700:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~
/usr/include/boost/foreach.hpp:700:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:708:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~
/usr/include/boost/foreach.hpp:708:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Logistic>*)this)->NeuronLayer<Logistic>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:729:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<int> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~
/usr/include/boost/foreach.hpp:729:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
rnnlib4seshat/NeuronLayer.hpp: In instantiation of ‘void NeuronLayer<F>::feed_back(const std::vector<int>&) [with F = Softsign]’:
symfeatures.cc:218:1:   required from here
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘begin(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:660:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~~~
/usr/include/boost/foreach.hpp:660:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:668:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~~~
/usr/include/boost/foreach.hpp:668:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:689:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<T*> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~~~
/usr/include/boost/foreach.hpp:689:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘end(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:700:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~
/usr/include/boost/foreach.hpp:700:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:708:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~
/usr/include/boost/foreach.hpp:708:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Softsign>*)this)->NeuronLayer<Softsign>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:729:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<int> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~
/usr/include/boost/foreach.hpp:729:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
rnnlib4seshat/NeuronLayer.hpp: In instantiation of ‘void NeuronLayer<F>::feed_back(const std::vector<int>&) [with F = Tanh]’:
symfeatures.cc:218:1:   required from here
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘begin(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:660:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~~~
/usr/include/boost/foreach.hpp:660:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:668:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 begin(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~~~
/usr/include/boost/foreach.hpp:668:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:689:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<T*> boost::foreach_detail_::begin(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~~~
/usr/include/boost/foreach.hpp:689:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
rnnlib4seshat/Helpers.hpp:80:14: error: no matching function for call to ‘end(const boost::foreach_detail_::auto_any_base&, boost::foreach_detail_::type2type<int, mpl_::bool_<true> >*, boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*)’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:700:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::true_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::true_ *) // rvalue
 ^~~
/usr/include/boost/foreach.hpp:700:1: note:   template argument deduction/substitution failed:
/usr/include/boost/foreach.hpp:708:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<typename boost::foreach_detail_::foreach_iterator<T, C>::type> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*, mpl_::false_*)
 end(auto_any_t col, type2type<T, C> *, boost::mpl::false_ *) // lvalue
 ^~~
/usr/include/boost/foreach.hpp:708:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   cannot convert ‘(true ? 0u :  boost::foreach_detail_::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> > >(boost::foreach_detail_::is_rvalue_<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))), 0), boost::foreach_detail_::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int> >(boost::foreach_detail_::not_<boost::foreach::is_noncopyable<int> >(boost_foreach_is_noncopyable<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u)), boost_foreach_is_lightweight_proxy<int>((* & boost::foreach_detail_::to_ptr<int>(zip<const View<double>, const View<double>, const View<double> >(((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::inputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputActivations.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords)), ((NeuronLayer<Tanh>*)this)->NeuronLayer<Tanh>::<anonymous>.FlatLayer::<anonymous>.Layer::outputErrors.SeqBuffer<double>::<anonymous>.MultiArray<T>::operator[]<double>((* & coords))))), (boost_foreach_argument_dependent_lookup_hack)0u))))’ (type ‘boost::mpl::or_<boost::is_rvalue_reference<int&&>, boost::mpl::and_<boost::mpl::not_<boost::foreach::is_noncopyable<int> >, boost::foreach::is_lightweight_proxy<int>, mpl_::bool_<true>, mpl_::bool_<true>, mpl_::bool_<true> >, mpl_::bool_<false>, mpl_::bool_<false>, mpl_::bool_<false> >*’) to type ‘mpl_::false_* {aka mpl_::bool_<false>*}’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
/usr/include/boost/foreach.hpp:729:1: note: candidate: template<class T, class C> boost::foreach_detail_::auto_any<int> boost::foreach_detail_::end(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T*, C>*, mpl_::true_*)
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style strings
 ^~~
/usr/include/boost/foreach.hpp:729:1: note:   template argument deduction/substitution failed:
rnnlib4seshat/Helpers.hpp:80:14: note:   mismatched types ‘T*’ and ‘int’
 #define LOOP BOOST_FOREACH
              ^
rnnlib4seshat/NeuronLayer.hpp:71:3: note: in expansion of macro ‘LOOP’
   LOOP(TDDD t, zip(this->inputErrors[coords], this->outputActivations[coords], this->outputErrors[coords]))
   ^
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
                 from symrec.h:30,
                 from production.h:28,
                 from hypothesis.h:30,
                 from cellcyk.h:24,
                 from tablecyk.h:26,
                 from sample.h:27,
                 from symfeatures.h:32,
                 from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘int zip(R1&, R2&, R3&) [with R1 = const View<double>; R2 = const View<double>; R3 = const View<double>]’:
rnnlib4seshat/NeuronLayer.hpp:71:3:   required from ‘void NeuronLayer<F>::feed_back(const std::vector<int>&) [with F = Logistic]’
symfeatures.cc:218:1:   required from here
rnnlib4seshat/Helpers.hpp:578:54: error: cannot convert ‘std::pair<boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >, boost::iterators::zip_iterator<std::tuple<double*, double*, double*> > >’ to ‘int’ in return
           boost::end(r3) - (boost::size(r3) - size))));
                                                      ^
make: *** [Makefile:65: symfeatures.o] Error 1

最近编辑记录 tan9p (2016-06-15 14:02:55)

离线

#3 2016-06-15 13:45:19

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

首先 cd 到源码目录,然后把下面补丁保存为 wtf.patch,然后运行

patch -p1 < wtf.patch

然后 make。别忘了装 xerces-c。

附,补丁:

diff --git a/Makefile b/Makefile
index f716192..b35345e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 CC=g++
 LINK=-lxerces-c -lm
-FLAGS = -O3 -Wno-unused-result #-I/path/to/boost/
+FLAGS = -std=c++0x -O3 -Wno-unused-result #-I/path/to/boost/
 
 OBJFEAS=symfeatures.o featureson.o online.o
 OBJMUESTRA=sample.o stroke.o
diff --git a/rnnlib4seshat/ClassificationLayer.hpp b/rnnlib4seshat/ClassificationLayer.hpp
index 4332c79..fa3f03d 100644
--- a/rnnlib4seshat/ClassificationLayer.hpp
+++ b/rnnlib4seshat/ClassificationLayer.hpp
@@ -176,7 +176,7 @@ struct BinaryClassificationLayer: public ClassificationLayer, public NeuronLayer
 	real_t set_error(int pt, int targetClass)
 	{
 		real_t targetProb = class_prob(pt, targetClass);
-		((View<real_t>&)outputErrors[pt])[0] = (targetClass ? -(1/targetProb) : (1/targetProb));
+		(static_cast<const View<real_t>&>(outputErrors[pt]))[0] = (targetClass ? -(1/targetProb) : (1/targetProb));
 		return log(targetProb);
 	}
 };
diff --git a/rnnlib4seshat/DataExporter.hpp b/rnnlib4seshat/DataExporter.hpp
index c9b3c82..b47285e 100644
--- a/rnnlib4seshat/DataExporter.hpp
+++ b/rnnlib4seshat/DataExporter.hpp
@@ -114,7 +114,10 @@ template <typename T> struct ParamVal: public Val {
   }
 
   bool load(istream& in, ostream& out = cout) {
-    return (in >> param);
+    if (in >> param)
+		return true;
+	else
+		return false;
   }
 };
 
diff --git a/rnnlib4seshat/Helpers.hpp b/rnnlib4seshat/Helpers.hpp
index 8828e9e..d34c700 100644
--- a/rnnlib4seshat/Helpers.hpp
+++ b/rnnlib4seshat/Helpers.hpp
@@ -151,20 +151,20 @@ typedef pair<const string, real_t> PCSD;
 typedef pair<string, int> PSI;
 typedef pair<int, string> PIS;
 typedef pair<string, string> PSS;
-typedef const tuple<real_t&, real_t&, real_t&, real_t&>& TDDDD;
-typedef const tuple<real_t&, real_t&, real_t&, real_t&, real_t&>& TDDDDD;
-typedef const tuple<real_t&, real_t&, real_t&>& TDDD;
-typedef const tuple<real_t&, real_t&, int&>& TDDI;
-typedef const tuple<real_t&, real_t&, real_t&>& TDDF;
-typedef const tuple<real_t&, real_t&, real_t>& TDDCF;
-typedef const tuple<real_t&, real_t&>& TDD;
-typedef const tuple<int, string>& TIS;
-typedef const tuple<int, int>& TII;
-typedef const tuple<int, real_t>& TID;
-typedef const tuple<int, set<int>&>& TISETI;
-typedef const tuple<int&, bool, int>& TIBI;
-typedef const tuple<real_t, Log<real_t>& >& TDL;
-typedef const tuple<real_t&, Log<real_t>, Log<real_t> >& TDLL;
+typedef const boost::tuple<real_t&, real_t&, real_t&, real_t&>& TDDDD;
+typedef const boost::tuple<real_t&, real_t&, real_t&, real_t&, real_t&>& TDDDDD;
+typedef const boost::tuple<real_t&, real_t&, real_t&>& TDDD;
+typedef const boost::tuple<real_t&, real_t&, int&>& TDDI;
+typedef const boost::tuple<real_t&, real_t&, real_t&>& TDDF;
+typedef const boost::tuple<real_t&, real_t&, real_t>& TDDCF;
+typedef const boost::tuple<real_t&, real_t&>& TDD;
+typedef const boost::tuple<int, string>& TIS;
+typedef const boost::tuple<int, int>& TII;
+typedef const boost::tuple<int, real_t>& TID;
+typedef const boost::tuple<int, set<int>&>& TISETI;
+typedef const boost::tuple<int&, bool, int>& TIBI;
+typedef const boost::tuple<real_t, Log<real_t>& >& TDL;
+typedef const boost::tuple<real_t&, Log<real_t>, Log<real_t> >& TDLL;
 typedef Log<real_t> prob_t;
 
 //global variables
@@ -334,18 +334,18 @@ indices(const R& r) {
   return span<typename boost::range_size<R>::type>(boost::size(r));
 }
 template <class R> static pair<
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  counting_iterator<typename range_difference<R>::type>,
                  typename range_iterator<R>::type> >,
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  counting_iterator<typename range_difference<R>::type>,
                  typename range_iterator<R>::type> > >
 enumerate(R& r) {
   return make_pair(
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(
           counting_iterator<typename range_difference<R>::type>(0),
           boost::begin(r))),
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(
           counting_iterator<typename range_difference<R>::type>(
               boost::size(r)),
           boost::end(r))));
@@ -408,7 +408,7 @@ pair<typename range_value<R>::type, typename range_value<R>::type>
 minmax(const R& r) {
   pair<
     typename range_const_iterator<R>::type,
-    typename range_const_iterator<R>::type> p = minmax_element(
+    typename range_const_iterator<R>::type> p = boost::minmax_element(
         boost::begin(r), boost::end(r));
   return make_pair(*p.first, *p.second);
 }
@@ -543,48 +543,48 @@ template <class R> static int arg_max(const R& r) {
 }
 template <class R1, class R2>
 static pair<
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  typename range_iterator<R1>::type,
                  typename range_iterator<R2>::type> >,
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  typename range_iterator<R1>::type,
                  typename range_iterator<R2>::type> > >
 zip(R1& r1, R2& r2) {
   size_t size = range_min_size(r1, r2);
   return make_pair(
-      make_zip_iterator(make_tuple(boost::begin(r1), boost::begin(r2))),
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(boost::begin(r1), boost::begin(r2))),
+      make_zip_iterator(boost::make_tuple(
           boost::end(r1) - (boost::size(r1) - size),
           boost::end(r2) - (boost::size(r2) - size))));
 }
 template <class R1, class R2, class R3>
 static pair<
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  typename range_iterator<R1>::type,
                  typename range_iterator<R2>::type,
                  typename range_iterator<R3>::type> >,
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  typename range_iterator<R1>::type,
                  typename range_iterator<R2>::type,
                  typename range_iterator<R3>::type> > >
 zip(R1& r1, R2& r2, R3& r3) {
   size_t size = range_min_size(r1, r2, r3);
   return make_pair(
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(
           boost::begin(r1), boost::begin(r2), boost::begin(r3))),
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(
           boost::end(r1) - (boost::size(r1) - size),
           boost::end(r2) - (boost::size(r2) - size),
           boost::end(r3) - (boost::size(r3) - size))));
 }
 template <class R1, class R2, class R3, class R4>
 static pair<
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  typename range_iterator<R1>::type,
                  typename range_iterator<R2>::type,
                  typename range_iterator<R3>::type,
                  typename range_iterator<R4>::type> >,
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  typename range_iterator<R1>::type,
                  typename range_iterator<R2>::type,
                  typename range_iterator<R3>::type,
@@ -592,10 +592,10 @@ static pair<
 zip(R1& r1, R2& r2, R3& r3, R4& r4) {
   size_t size = range_min_size(r1, r2, r3, r4);
   return make_pair(
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(
           boost::begin(r1), boost::begin(r2), boost::begin(r3),
           boost::begin(r4))),
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(
           boost::end(r1) - (boost::size(r1) - size),
           boost::end(r2) - (boost::size(r2) - size),
           boost::end(r3) - (boost::size(r3) - size),
@@ -603,13 +603,13 @@ zip(R1& r1, R2& r2, R3& r3, R4& r4) {
 }
 template <class R1, class R2, class R3, class R4, class R5>
 static pair<
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  typename range_iterator<R1>::type,
                  typename range_iterator<R2>::type,
                  typename range_iterator<R3>::type,
                  typename range_iterator<R4>::type,
                  typename range_iterator<R5>::type> >,
-  zip_iterator<tuple<
+  zip_iterator<boost::tuple<
                  typename range_iterator<R1>::type,
                  typename range_iterator<R2>::type,
                  typename range_iterator<R3>::type,
@@ -618,10 +618,10 @@ static pair<
 zip(R1& r1, R2& r2, R3& r3, R4& r4, R5& r5) {
   size_t size = range_min_size(r1, r2, r3, r4, r5);
   return make_pair(
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(
           boost::begin(r1), boost::begin(r2), boost::begin(r3),
           boost::begin(r4), boost::begin(r5))),
-      make_zip_iterator(make_tuple(
+      make_zip_iterator(boost::make_tuple(
           boost::end(r1) - (boost::size(r1) - size),
           boost::end(r2) - (boost::size(r2) - size),
           boost::end(r3) - (boost::size(r3) - size),
@@ -804,25 +804,25 @@ template<class R1, class R2> static void range_divide_equals(
 }
 //TUPLE OPERATIONS
 template<class T1, class T2> static ostream& operator << (
-    ostream& out, const tuple<T1, T2>& t) {
-  out << t.get<0>() << " " << t.get<1>();
+    ostream& out, const boost::tuple<T1, T2>& t) {
+  out << boost::get<0>(t) << " " << boost::get<1>(t);
   return out;
 }
 template<class T1, class T2, class T3> static ostream& operator << (
-    ostream& out, const tuple<T1, T2, T3>& t) {
-  out << t.get<0>() << " " << t.get<1>() << " " << t.get<2>();
+    ostream& out, const boost::tuple<T1, T2, T3>& t) {
+  out << boost::get<0>(t) << " " << boost::get<1>(t) << " " << boost::get<2>(t);
   return out;
 }
 template<class T1, class T2, class T3, class T4> static ostream& operator << (
-    ostream& out, const tuple<T1, T2, T3, T4>& t) {
-  out << t.get<0>() << " " << t.get<1>() << " " << t.get<2>() << " "
-      << t.get<3>();
+    ostream& out, const boost::tuple<T1, T2, T3, T4>& t) {
+  out << boost::get<0>(t) << " " << boost::get<1>(t) << " " << boost::get<2>(t) << " "
+      << boost::get<3>(t);
   return out;
 }
 template<class T1, class T2, class T3, class T4, class T5>
-static ostream& operator << (ostream& out, const tuple<T1, T2, T3, T4, T5>& t) {
-  out << t.get<0>() << " " << t.get<1>() << " " << t.get<2>() << " "
-      << t.get<3>() << " " << t.get<4>();
+static ostream& operator << (ostream& out, const boost::tuple<T1, T2, T3, T4, T5>& t) {
+  out << boost::get<0>(t) << " " << boost::get<1>(t) << " " << boost::get<2>(t) << " "
+      << boost::get<3>(t) << " " << boost::get<4>(t);
   return out;
 }
 //PAIR OPERATIONS
diff --git a/rnnlib4seshat/WeightContainer.cpp b/rnnlib4seshat/WeightContainer.cpp
index c50fb66..2cdaf9f 100644
--- a/rnnlib4seshat/WeightContainer.cpp
+++ b/rnnlib4seshat/WeightContainer.cpp
@@ -45,14 +45,14 @@ void perturb_weight(real_t& weight, real_t stdDev, bool additive)
 }
 
 
-template <class R> void perturb_weights(R& weights, real_t stdDev, bool additive = true)
+template <class R> void perturb_weights(R& weights, real_t stdDev, bool additive)
 {
 	LOOP(real_t& w, weights)
 	{
 		perturb_weight(w, stdDev, additive);
 	}
 }
-template <class R> void perturb_weights(R& weights, R& stdDevs, bool additive = true)
+template <class R> void perturb_weights(R& weights, R& stdDevs, bool additive)
 {
 	assert(boost::size(weights) == boost::size(stdDevs));
 	LOOP(int i, indices(weights))
diff --git a/rnnlib4seshat/WeightContainer.hpp b/rnnlib4seshat/WeightContainer.hpp
index f7945bd..55346f7 100644
--- a/rnnlib4seshat/WeightContainer.hpp
+++ b/rnnlib4seshat/WeightContainer.hpp
@@ -51,15 +51,15 @@ the following copyright and permission notice:
 
 using namespace std;
 
-typedef multimap<string, tuple<string, string, int, int> >::iterator WC_CONN_IT; 
-typedef pair<string, tuple<string, string, int, int> > WC_CONN_PAIR;
+typedef multimap<string, boost::tuple<string, string, int, int> >::iterator WC_CONN_IT; 
+typedef pair<string, boost::tuple<string, string, int, int> > WC_CONN_PAIR;
 
 struct WeightContainer: public DataExporter
 {
   //data
   Vector<real_t> weights;
   Vector<real_t> derivatives;
-  multimap<string, tuple<string, string, int, int> > connections;
+  multimap<string, boost::tuple<string, string, int, int> > connections;
 	
   //functions
   WeightContainer(DataExportHandler *deh):
@@ -68,7 +68,7 @@ struct WeightContainer: public DataExporter
   }
 
   void link_layers(const string& fromName, const string& toName, const string& connName = "", int paramBegin = 0, int paramEnd = 0) {
-    connections.insert(make_pair(toName, make_tuple(fromName, connName, paramBegin, paramEnd)));
+    connections.insert(make_pair(toName, boost::make_tuple(fromName, connName, paramBegin, paramEnd)));
   }
   
   pair<size_t, size_t> new_parameters(size_t numParams, const string& fromName, const string& toName, const string& connName) {

最近编辑记录 zsrkmyn (2016-06-15 13:45:48)

离线

#4 2016-06-15 13:56:10

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

显然作者用了一堆 using namespace 导致了命名空间污染。不知道为啥,stl 的 tuple 明明是 C++11 引入的,但是加 -std=c++0x 还是会找到 std::tuple _(:з」∠)_
然后还有一堆莫名奇妙的错误,大部分是用了不规范的写法,然后是新老 g++ 表现不一样造成了。
所以啊!不要乱用 using namespace,不要用 C-style type cast!

另外,发代码、报错,请用code标签。

离线

#5 2016-06-15 14:10:09

tan9p
会员
注册时间: 2015-07-07
帖子: 130

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

谢谢您,当时没有找到code标签,之前也没发过,就直接发了那个长的让人崩溃的东西。

那个补丁,是自动生成的吗?很厉害的样子:)

离线

#6 2016-06-15 15:11:08

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

tan9p 说:

谢谢您,当时没有找到code标签,之前也没发过,就直接发了那个长的让人崩溃的东西。

那个补丁,是自动生成的吗?很厉害的样子:)

当然是先改代码,改完代码以后用 diff/git diff 之类的工具生成补丁啦 =w=

离线

#7 2016-06-15 16:59:49

tan9p
会员
注册时间: 2015-07-07
帖子: 130

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

:)谢谢,能再麻烦您一下吗?
我装 xerces-c时,用源码安装

./configure --prefix=/usr/include
make
make install

但是make时,仍然提示xerces-c没装好。
我把/xercesc/src/* 复制到 /usr/include/xercesc 下,结果还是提示有错,
我回去再补错误的提示吧。

离线

#8 2016-06-15 17:00:49

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

tan9p 说:

:)谢谢,能再麻烦您一下吗?
我装 xerces-c时,用源码安装

./configure --prefix=/usr/include
make
make install

但是make时,仍然提示xerces-c没装好。
我把/xercesc/src/* 复制到 /usr/include/xercesc 下,结果还是提示有错,
我回去再补错误的提示吧。

xerces-c 直接用 pacman -S xerces-c 安装就好了呀 _(:з」∠)_

离线

#9 2016-06-15 17:12:53

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,956
个人网站

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

--prefix=/usr/include……你是怎么想出来这招的?

离线

#10 2016-06-15 17:37:33

tan9p
会员
注册时间: 2015-07-07
帖子: 130

Re: 编译github上的一个程序seshat出错,不知道问题出在哪儿?

soga,看来之前自己打错了:( 我还 pacman -Ss 了一下呢:)
依云大大,见笑啦:)依稀记得 --prefix 是指定安装位置的,make也是一点不懂得:(

离线

页脚