Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error: no template named 'void_t' in namespace 'std'; did you mean 'boost::void_t'? (etc) #1492

Closed
yurivict opened this issue Aug 28, 2020 · 2 comments
Labels
type: bug Indicates an unexpected problem or unintended behavior

Comments

@yurivict
Copy link

Version 6.9.3 breaks:

In file included from /usr/ports/misc/dartsim/work/dart-6.9.3/dart/optimizer/pagmo/PagmoMultiObjectiveProblemAdaptor.cpp:33:
In file included from /usr/ports/misc/dartsim/work/dart-6.9.3/dart/optimizer/pagmo/PagmoMultiObjectiveProblemAdaptor.hpp:37:
In file included from /usr/local/include/pagmo/pagmo.hpp:35:
In file included from /usr/local/include/pagmo/algorithm.hpp:46:
In file included from /usr/local/include/pagmo/detail/typeid_name_extract.hpp:36:
/usr/local/include/pagmo/type_traits.hpp:55:26: error: no template named 'void_t' in namespace 'std'; did you mean 'boost::void_t'?
struct detector<Default, std::void_t<Op<Args...>>, Op, Args...> {
                         ^~~~~
/usr/local/include/boost/type_traits/make_void.hpp:25:1: note: 'boost::void_t' declared here
using void_t = typename make_void<Ts...>::type;
^
In file included from /usr/ports/misc/dartsim/work/dart-6.9.3/dart/optimizer/pagmo/PagmoMultiObjectiveProblemAdaptor.cpp:33:
In file included from /usr/ports/misc/dartsim/work/dart-6.9.3/dart/optimizer/pagmo/PagmoMultiObjectiveProblemAdaptor.hpp:37:
In file included from /usr/local/include/pagmo/pagmo.hpp:35:
In file included from /usr/local/include/pagmo/algorithm.hpp:46:
In file included from /usr/local/include/pagmo/detail/typeid_name_extract.hpp:36:
/usr/local/include/pagmo/type_traits.hpp:72:26: error: no template named 'conjunction' in namespace 'std'
using conjunction = std::conjunction<Args...>;
                    ~~~~~^
/usr/local/include/pagmo/type_traits.hpp:75:26: error: no template named 'disjunction' in namespace 'std'; did you mean 'is_function'?
using disjunction = std::disjunction<Args...>;
                    ~~~~~^
@yurivict yurivict added the type: bug Indicates an unexpected problem or unintended behavior label Aug 28, 2020
@yurivict
Copy link
Author

You are missing --std=c++17 because std::void_t (through pagmo2) is a c++17 feature.

@jslee02
Copy link
Member

jslee02 commented Aug 28, 2020

Thank you for the report.

It seems pagmo2 recently added the C++17 requirement in their master branch, and building DART with the latest release of pagmo2 (i.e. v2.15.0) should work fine. Specifically, std::void_t, std::conjuction, std::disjunction are added in this commit.

Maybe DART needs to check the detected pagmo2 version and add the required compiler flags for C++17 for pagmo2 > v2.15.0.

@jslee02 jslee02 closed this as completed Jul 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Indicates an unexpected problem or unintended behavior
Projects
None yet
Development

No branches or pull requests

2 participants