nongeneric/lsd2dsl

Make failed

Kroid opened this issue · 2 comments

Kroid commented

Hello, I install deps and try make on fedora (x64):

[kroid@localhost-localdomain lsd2dsl]$ cmake . -DCMAKE_RELEASE=TRUE
-- The C compiler identification is GNU 4.8.3
-- The CXX compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.54.0
-- Found the following Boost libraries:
--   system
--   program_options
--   filesystem
-- Configuring done
-- Generating done
-- Build files have been written to: /home/kroid/Downloads/lsd2dsl
[kroid@localhost-localdomain lsd2dsl]$ make
Scanning dependencies of target dictlsd
[  4%] Building CXX object dictlsd/CMakeFiles/dictlsd.dir/lsd.cpp.o
[  8%] Building CXX object dictlsd/CMakeFiles/dictlsd.dir/tools.cpp.o
[ 12%] Building CXX object dictlsd/CMakeFiles/dictlsd.dir/LenTable.cpp.o
[ 16%] Building CXX object dictlsd/CMakeFiles/dictlsd.dir/BitStream.cpp.o
[ 20%] Building CXX object dictlsd/CMakeFiles/dictlsd.dir/ArticleHeading.cpp.o
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp: In function ‘void dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)’:
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:69: error: parameter declared ‘auto’
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                                     ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp: In lambda function:
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:367:24: error: ‘h’ was not declared in this scope
                 return h.articleReference() != ref;
                        ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp: In function ‘void dictlsd::collapseVariants(std::vector<dictlsd::ArticleHeading>&)’:
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:378:44: error: parameter declared ‘auto’
     foreachReferenceSet(headings, [&](auto first, auto last) {
                                            ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:378:56: error: parameter declared ‘auto’
     foreachReferenceSet(headings, [&](auto first, auto last) {
                                                        ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp: In lambda function:
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:379:27: error: ‘first’ was not declared in this scope
         if (std::distance(first, last) > 1) {
                           ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:379:34: error: ‘last’ was not declared in this scope
         if (std::distance(first, last) > 1) {
                                  ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp: In function ‘void dictlsd::collapseVariants(std::vector<dictlsd::ArticleHeading>&)’:
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:387:6: error: could not convert ‘<lambda closure object>dictlsd::collapseVariants(std::vector<dictlsd::ArticleHeading>&)::__lambda3{(* & toRemove), (* & headings)}’ from ‘dictlsd::collapseVariants(std::vector<dictlsd::ArticleHeading>&)::__lambda3’ to ‘std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>’
     });
      ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:390:92: error: parameter declared ‘auto’
     std::copy_if(begin(headings), end(headings), std::back_inserter(compressed), [&](auto& h) {
                                                                                            ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp: In lambda function:
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:391:21: error: ‘h’ was not declared in this scope
         auto idx = &h - &headings[0];
                     ^
In file included from /usr/include/c++/4.8.3/algorithm:62:0,
                 from /home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:7:
/usr/include/c++/4.8.3/bits/stl_algo.h: In instantiation of ‘_OIter std::copy_if(_IIter, _IIter, _OIter, _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >; _OIter = std::back_insert_iterator<std::vector<dictlsd::ArticleHeading> >; _Predicate = dictlsd::collapseVariants(std::vector<dictlsd::ArticleHeading>&)::__lambda4]’:
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:393:6:   required from here
/usr/include/c++/4.8.3/bits/stl_algo.h:962:21: error: no match for call to ‘(dictlsd::collapseVariants(std::vector<dictlsd::ArticleHeading>&)::__lambda4) (dictlsd::ArticleHeading&)’
  if (__pred(*__first))
                     ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:390:84: note: candidate is:
     std::copy_if(begin(headings), end(headings), std::back_inserter(compressed), [&](auto& h) {
                                                                                    ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:390:93: note: dictlsd::collapseVariants(std::vector<dictlsd::ArticleHeading>&)::__lambda4
     std::copy_if(begin(headings), end(headings), std::back_inserter(compressed), [&](auto& h) {
                                                                                             ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:390:93: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/c++/4.8.3/algorithm:62:0,
                 from /home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:7:
/usr/include/c++/4.8.3/bits/stl_algo.h: In instantiation of ‘_RandomAccessIterator std::__find_if(_RandomAccessIterator, _RandomAccessIterator, _Predicate, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >; _Predicate = dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2]’:
/usr/include/c++/4.8.3/bits/stl_algo.h:4465:41:   required from ‘_IIter std::find_if(_IIter, _IIter, _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >; _Predicate = dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2]’
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:368:14:   required from here
/usr/include/c++/4.8.3/bits/stl_algo.h:214:23: error: no match for call to ‘(dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2) (dictlsd::ArticleHeading&)’
    if (__pred(*__first))
                       ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:61: note: candidate is:
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                             ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note: dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                                      ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/c++/4.8.3/algorithm:62:0,
                 from /home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:7:
/usr/include/c++/4.8.3/bits/stl_algo.h:218:23: error: no match for call to ‘(dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2) (dictlsd::ArticleHeading&)’
    if (__pred(*__first))
                       ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:61: note: candidate is:
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                             ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note: dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                                      ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/c++/4.8.3/algorithm:62:0,
                 from /home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:7:
/usr/include/c++/4.8.3/bits/stl_algo.h:222:23: error: no match for call to ‘(dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2) (dictlsd::ArticleHeading&)’
    if (__pred(*__first))
                       ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:61: note: candidate is:
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                             ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note: dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                                      ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/c++/4.8.3/algorithm:62:0,
                 from /home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:7:
/usr/include/c++/4.8.3/bits/stl_algo.h:226:23: error: no match for call to ‘(dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2) (dictlsd::ArticleHeading&)’
    if (__pred(*__first))
                       ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:61: note: candidate is:
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                             ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note: dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                                      ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/c++/4.8.3/algorithm:62:0,
                 from /home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:7:
/usr/include/c++/4.8.3/bits/stl_algo.h:234:23: error: no match for call to ‘(dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2) (dictlsd::ArticleHeading&)’
    if (__pred(*__first))
                       ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:61: note: candidate is:
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                             ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note: dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                                      ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/c++/4.8.3/algorithm:62:0,
                 from /home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:7:
/usr/include/c++/4.8.3/bits/stl_algo.h:238:23: error: no match for call to ‘(dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2) (dictlsd::ArticleHeading&)’
    if (__pred(*__first))
                       ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:61: note: candidate is:
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                             ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note: dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                                      ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note:   candidate expects 0 arguments, 1 provided
In file included from /usr/include/c++/4.8.3/algorithm:62:0,
                 from /home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:7:
/usr/include/c++/4.8.3/bits/stl_algo.h:242:23: error: no match for call to ‘(dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2) (dictlsd::ArticleHeading&)’
    if (__pred(*__first))
                       ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:61: note: candidate is:
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                             ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note: dictlsd::foreachReferenceSet(std::vector<dictlsd::ArticleHeading>&, std::function<void(__gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >, __gnu_cxx::__normal_iterator<dictlsd::ArticleHeading*, std::vector<dictlsd::ArticleHeading> >)>, bool)::__lambda2
             it = std::find_if(it, end(groupedHeadings), [ref](auto& h) {
                                                                      ^
/home/kroid/Downloads/lsd2dsl/dictlsd/ArticleHeading.cpp:366:70: note:   candidate expects 0 arguments, 1 provided
make[2]: *** [dictlsd/CMakeFiles/dictlsd.dir/ArticleHeading.cpp.o] Error 1
make[1]: *** [dictlsd/CMakeFiles/dictlsd.dir/all] Error 2
make: *** [all] Error 2

Hi. This is because of generic lambdas, they were introduced in gcc 4.9.

Kroid commented

Thanks.