https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68982
Bug ID: 68982 Summary: Missing explicit qualification for std::forward in functional Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: rogero at howzatt dot demon.co.uk Target Milestone: --- I notice that <functional> is no longer consistently prefixing forward with std:: and this means ADL gets invoked, which causes trouble when the argument is from boost namespace and boost::forward is available. As an example, consider libstdc++-v3/include/std/functional at r229290, line 616: operator()(_Tp&& __obj) const noexcept(noexcept(std::__invoke(_M_pm, forward<_Tp>(__obj)))) -> decltype(std::__invoke(_M_pm, std::forward<_Tp>(__obj))) { return std::__invoke(_M_pm, std::forward<_Tp>(__obj)); } This can produce compiler errors when, for instance, the instantiating type _Tp is boost::shared_ptr. I get failures building proprietary code, have not yet produced a simple standa-alone example.