Project

General

Profile

Bug #2047

Core fails to compile with Boost 1.65.0 and GCC 6.4.0

Added by krigstask about 3 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Core
Target version:
Start date:
09/17/2017
Due date:
% Done:

100%

Estimated time:
1.00 h
Reported in:
master

Description

Gentoo ~amd64, Boost 1.65.0, GCC 6.4.0

I'm not sure Boost version is relevant, but I can't recompile core after updating Boost (`emerge @preserved-rebuild`)

/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp: In instantiation of ‘LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)> [with auto:14 = QString&]’:
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/../util/sll/oldcppkludges.h:40:71:   required by substitution of ‘template<class F, class ... Args> decltype (forward<F>(f)((forward<Args>)(LeechCraft::Util::Invoke::args)...)) LeechCraft::Util::Invoke(F&&, Args&& ...) [with F = LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>; Args = {QString&}]’
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/../util/sll/prelude.h:136:35:   required from ‘constexpr bool LeechCraft::Util::detail::DoesReturnVoid() [with F = LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>; Cont = QStringList]’
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/../util/sll/prelude.h:174:69:   required by substitution of ‘template<class Container, class F, class> auto LeechCraft::Util::Map(Container&, F) [with Container = QStringList; F = LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>; <template-parameter-1-3> = <missing>]’
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp:120:61:   required from here
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp:120:60: error: cannot call member function ‘virtual ITagsManager::tag_id LeechCraft::TagsManager::GetID(const QString&)’ without object
    [this] (auto&& tag) { return GetID (tag.simplified ()); });
                                                            ^
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp: In instantiation of ‘LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)> [with auto:14 = const QString&]’:
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/../util/sll/oldcppkludges.h:40:71:   required by substitution of ‘template<class F, class ... Args> decltype (forward<F>(f)((forward<Args>)(LeechCraft::Util::Invoke::args)...)) LeechCraft::Util::Invoke(F&&, Args&& ...) [with F = LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>&; Args = {const QString&}]’
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/../util/sll/prelude.h:179:11:   required from ‘auto LeechCraft::Util::Map(const Container&, F) [with Container = QStringList; F = LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>; <template-parameter-1-3> = void]’
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp:120:61:   required from here
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp:120:60: error: cannot call member function ‘virtual ITagsManager::tag_id LeechCraft::TagsManager::GetID(const QString&)’ without object
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp: In member function ‘virtual QStringList LeechCraft::TagsManager::SplitToIDs(const QString&)’:
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp:119:19: error: could not convert ‘LeechCraft::Util::Map<QStringList, LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>, void>(LeechCraft::TagsManager::Split(const QString&) const((* & string)), <lambda closure object>LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>{((LeechCraft::TagsManager*)this)})’ from ‘void’ to ‘QStringList’
  return Util::Map (Split (string),
         ~~~~~~~~~~^~~~~~~~~~~~~~~~
    [this] (auto&& tag) { return GetID (tag.simplified ()); });
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/../util/sll/prelude.h:37:0,
                 from /var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/tagsmanager.cpp:38:
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/../util/sll/oldcppkludges.h: At global scope:
/var/tmp/portage/app-leechcraft/lc-core-9999/work/lc-core-9999/src/core/../util/sll/oldcppkludges.h:40:7: error: ‘decltype (forward<F>(f)((forward<Args>)(LeechCraft::Util::Invoke::args)...)) LeechCraft::Util::Invoke(F&&, Args&& ...) [with F = LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>&; Args = {const QString&}; decltype (forward<F>(f)((forward<Args>)(LeechCraft::Util::Invoke::args)...)) = void]’, declared using local type ‘LeechCraft::TagsManager::SplitToIDs(const QString&)::<lambda(auto:14&&)>’, is used but never defined [-fpermissive]
  auto Invoke (F&& f, Args&&... args) -> decltype (std::forward<F> (f) (std::forward<Args> (args)...))
       ^~~~~~
make[2]: *** [core/CMakeFiles/leechcraft-qt5.dir/build.make:603: core/CMakeFiles/leechcraft-qt5.dir/tagsmanager.cpp.o] Error 1
#1

Updated by 0xd34df00d about 3 years ago

  • Estimated time set to 1.00 h
  • Target version set to 0.6.75
  • Status changed from New to Assigned

Meh, another gcc 6 deficiency.

#2

Updated by 0xd34df00d about 3 years ago

  • % Done changed from 0 to 100
  • Status changed from Assigned to Resolved
#3

Updated by 0xd34df00d about 3 years ago

  • Status changed from Resolved to Closed

Should be OK.

Also available in: Atom PDF