Code Monkey home page Code Monkey logo

ecst's Introduction

ecst

Experimental & work-in-progress C++14 multithreaded compile-time Entity-Component-System header-only library.

stability license gratipay badge.cpp

Overview

Successful development of complex real-time applications and games requires a flexible and efficient entity management system. As a project becomes more intricate, it’s critical to find an elegant way to compose objects in order to prevent code repetition, improve modularity and open up powerful optimization possibilities.

The Entity-Component-System architectural pattern was designed to achieve the aforementioned benefits, by separating data from logic.

  • Entities can be composed of small, reusable, and generic components.

  • Components can be stored in contiguous memory areas, thus improving data locality and cache- friendliness.

  • Application logic can be easily parallelized and abstracted away from the objects themselves and their storage policies.

  • The state of the application can be serialized and shared over the network with less effort.

  • A more modular, generic and easily-testable codebase.

"ecst" was developed as my BCS graduation project.


Getting started


More information


Terminology

  • Entities: defined by Adam Martin (see thesis) as “fundamental conceptual building blocks” of a system, which represent concrete application ob-jects. They have no application-specific data or logic.

  • Components: small, reusable, types that compose entities. Again, citing Adam Martin in (see thesis), a component type “labels an entity as possess-ing a particular aspect”. Components store data but do not contain any logic.

  • Systems: providers of implementation logic for entities possessing a specific set of component types.

  • Outer parallelism: term used in ECST which defines the concept of running multiple systems that do not depend on each other in parallel. Its implementation details will be analyzed in Chapter 10 (see thesis). Conceptually, an implicit directed acyclic graph is created at compile-time thanks to the knowledge of system dependencies. The execution of the implicit DAG is handled by a system scheduler type specified during settings definition.

  • Inner parallelism: other that running separate systems in parallel, ECST supports splitting a single system into multiple sub-tasks, which can be executed on separate threads. Many systems, such as the ones that represent functionally pure com- putations, do not contain side-effects that modify their own state or that define interactions between the subscribed entities: these are prime examples of “embarrassingly parallel” computations.


FAQ

  • "Where can I find documentation for the API?"

  • "Can we have components that aren't default constructible?"

    • This has come up before in the past. The answer is no - see issue #8.
  • "I'm trying to read/write to/from my component, but I'm getting a compilation error. What is happening?"

    • Systems need to know at compile-time which component types they will access and how (read-only or write access). This has to be specified when defining system signatures. See issue #4 for more info.
  • "Is it possible to iterate over the components attached to entities, without being inside of a system's process function?"

  • "How do control whether my system runs in parallel, or as a single thread?"

    • Context-wide inner parallelism must be enabled by calling allow_inner_parallelism() in order to allow systems to be split in multiple sub-tasks. Inner parallelism strategies can be customized and composed at compile-time for particular systems, during system signature definition.
  • "What is the difference between making my system single-threaded vs disabling inner paralellism?"

    • Disabling inner parallelism prevents all systems to be split in multiple sub-tasks, regardless of their inner parallelism strategy. Making a system single-threaded prevents only that system from being split in multiple sub-tasks: this may be necessary for systems that maintain data-structures or that rely on iterating over all entities in the same thread.

ecst's People

Contributors

bjadamson avatar kvanbere avatar ldionne avatar vittorioromeo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ecst's Issues

Setting up ecst - needed modules, compile issues

I thought this library looked really interesting, and was advertised as header-only, so I foolishly hoped to just drop it into my C++ Win64 VS2015 project without issue, but this has not been the case 😁

I've grabbed the vrm/core and vrm/pp code from Github and made sure it was included. Then, trying to compile the project:

1>l:_programming\projects\ecst-test\lib\vrm\pp\generated\output.hpp(782): fatal error C1112: compiler limit: '129' too many macro arguments, only '127' allowed

On this line of output.hpp in vrm/pp:

#define VRM_PP_IMPL_NSEQ( m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45, m46, m47, m48, m49, m50, m51, m52, m53, m54, m55, m56, m57, m58, m59, m60, m61, m62, m63, m64, m65, m66, m67, m68, m69, m70, m71, m72, m73, m74, m75, m76, m77, m78, m79, m80, m81, m82, m83, m84, m85, m86, m87, m88, m89, m90, m91, m92, m93, m94, m95, m96, m97, m98, m99, m100, m101, m102, m103, m104, m105, m106, m107, m108, m109, m110, m111, m112, m113, m114, m115, m116, m117, m118, m119, m120, m121, m122, m123, m124, m125, m126, m127, mN, ...) mN

Any advice would be appreciated. Is this perhaps not a supported platform?

EDIT: Additionally, as a side question; the way you've written about the threading model has left this somewhat unclear, but can I totally take over with my own architecture, such as an IntelTBB or similar job system, and hand out the ECS update work to that or to other similar systems? An externally-controlled update on an ECS-system-by-system basis, for example.

Complete and test the `generalized_instances` branch

The generalized_instances branch introduces a hierarchy of "system instances", allowing the users to create systems that directly act on component buffers (without going through "entity"). This can be useful for SIMD-like behavior - imagine storing c::position and c::velocity vectors in two huge separate buffers and simply adding them from beginning to end using SIMD operations.

The branch should also allow users to write systems that do not use components nor entities: this could be useful for "control" systems that need to be part of the DAG but that do not need to read/write component data.

Intel C++ & VC15

The following compilers: Intel C++ ; VC15 are not supported by this library.
Is it something that you could look into?
Thanks

Library asserts when I have too little number of entities

It seems like if I have A entities spawned on my pc, and the number of cores I have on my pc is B,

then if A is < B, my program dies.

I have been working on integrating ecst into my project and found this out, so I don't have a super small reproducable test case. I did observe this behavior directly though.

This was with inner_parallelism() on/off.

This is the assert that is triggerring:
https://github.com/SuperV1234/ecst/blob/master/include/ecst/context/system/instance/instance_subtask.inl#L61

My guess is there's a logic error, when the number of available entities is < the number of available cores, this assert is erroneously triggered.

Help with my configuration

Hey,

I for some reason can't seem to get one of my systems to run in parallel. Could you take a look at my configuration? Basically one of my systems has all my opengl code in it, that system crashes if multiple threads try and run it.

I configured my system to run singlethreaded, or atleast I thought I did, but the evidence shows my "rendering system" is being executed by multiple threads. Any ideas?

proof (using gdb, system initially runs on thread #1, later segfaults on thread #4):
ss.png

configuration:
https://github.com/bjadamson/BoomHS/blob/ecst/include/game/boomhs/boomhs.hpp#L198-L206

example I copied:
https://github.com/SuperV1234/ecst/blob/948491e47e11327cff8f62a04fe02fda3c08bd6d/example/pres_code.cpp#L766

The actual system code is here, and maybe important. I only expect the whole "system" to be executed serially, because I disabled inner parallelism. Is that expectation correct?
https://github.com/bjadamson/BoomHS/blob/ecst/include/game/boomhs/boomhs.hpp#L43-L55
https://github.com/bjadamson/BoomHS/blob/ecst/include/game/boomhs/boomhs.hpp#L236

Thx !!

question: read/write same component from system

Hey, hope things are going well. I have a simple question, is it possible to read/write the same component type from a system?

I'm getting the following compilation error:

home/benjamin/github/BoomHS/external/ecst/include/ecst/signature/./system/./data.hpp:80:13: error: static_assert failed "decltype(!mp::list::any_common_element( s_read_ctag_list(), s_write_ctag_list())){}"
ECST_S_ASSERT_DT(!mp::list::any_common_element( // .
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/benjamin/github/BoomHS/external/ecst/include/./ecst/./aliases/assert.hpp:27:31: note: expanded from macro 'ECST_S_ASSERT_DT'
#define ECST_S_ASSERT_DT(...) ECST_S_ASSERT(decltype(VA_ARGS){})
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/benjamin/github/BoomHS/external/ecst/include/./ecst/./aliases/assert.hpp:20:28: note: expanded from macro 'ECST_S_ASSERT'
#define ECST_S_ASSERT(...) VRM_CORE_STATIC_ASSERT_NM(VA_ARGS)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/benjamin/github/BoomHS/external/ecst/extlibs/vrm_core/include/vrm/core/assert/static_assert_macros.hpp:17:40: note: expanded from macro 'VRM_CORE_STATIC_ASSERT_NM'
#define VRM_CORE_STATIC_ASSERT_NM(...) static_assert(VA_ARGS, VRM_PP_TOSTR(VA_ARGS))
^ ~~~~~~~~~~~
/home/benjamin/github/BoomHS/external/ecst/include/ecst/signature/./system/./data.hpp:56:24: note: in instantiation of template class 'ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::randompos_system>,
ecst::mp::option_map::impl::data<boost::hana::map<boost::hana::detail::hash_table<boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 0>, 0>,
boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 1>, 1>, boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 2>, 2>,
boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 3>, 3>, boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 4>, 4> >,
boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pair<boost::hana::basic_tuple<>, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pair<boost::hana::basic_tuple<ecst::tag::component::impl::tag_implgame::world_coordinate >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pair<boost::hana::basic_tuple<ecst::tag::component::impl::tag_implgame::world_coordinate >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pair<ecst::signature::system::impl::output_implecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > >' requested here
return data<TTag, ECST_DECAY_DECLTYPE(new_options)>{};
^
/home/benjamin/github/BoomHS/external/ecst/include/ecst/signature/./system/./data.hpp:120:24: note: in instantiation of function template specialization
'ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::randompos_system>,
ecst::mp::option_map::impl::data<boost::hana::map<boost::hana::detail::hash_table<boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 0>, 0>,
boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 1>, 1>, boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 2>, 2>,
boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 3>, 3>, boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 4>, 4> >,
boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pair<boost::hana::basic_tuple<>, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pair<boost::hana::basic_tuple<ecst::tag::component::impl::tag_implgame::world_coordinate >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pair<boost::hana::basic_tuple<>, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pair<ecst::signature::system::impl::output_implecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > >::change_self<std::__1::integral_constant<unsigned long, 3>,
boost::hana::basic_tuple<ecst::tag::component::impl::tag_implgame::world_coordinate > >' requested here
return change_self(
^
/home/benjamin/github/BoomHS/include/game/boomhs/ecst_systems.hpp:36:6: note: in instantiation of function template specialization 'ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::randompos_system>,
ecst::mp::option_map::impl::data<boost::hana::map<boost::hana::detail::hash_table<boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 0>, 0>,
boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 1>, 1>, boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 2>, 2>,
boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 3>, 3>, boost::hana::detail::bucket<boost::hana::integral_constant<unsigned long long, 4>, 4> >,
boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pair<boost::hana::basic_tuple<>, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pair<boost::hana::basic_tuple<ecst::tag::component::impl::tag_implgame::world_coordinate >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pair<boost::hana::basic_tuple<>, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pair<ecst::signature::system::impl::output_implecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > >
>::write<ecst::tag::component::impl::tag_implgame::world_coordinate >' requested here
.write(ct::world_coordinate);){}"

I boiled the error down to this minimal change:
bjadamson/BoomHS@d36fc8b

I'm not sure if I'm interpreting this error message correctly, but am I allowed to read/write the same values from within a system?

set method:
https://github.com/bjadamson/BoomHS/blob/release/include/game/data_types.hpp#L68

Passing a tuple of systems to execute_systems() instead of a variadic param pack

Hey, I got a quick question for you. I've been doing some meta programming in my game lately, and I would like to group my list of "systems" into a tuple (so I can pass it around) and then later pass that tuple to the execute_systems() function located here:

https://github.com/SuperV1234/ecst/blob/master/include/ecst/context/data/step/step.hpp#L33-L34

This doesn't work currently because I don't see a straight-forward way to destructure my std::tuple (actually I'm using hana::tuple but it's the same problem) back into a list of variadic arguments to pass to:

template <typename... TStartSystemTags>
auto execute_systems_from(TStartSystemTags... sts) noexcept;

Here's the diff of what I was thinking of as an approach:
bjadamson@c308eea

Questions, do you already support this and I don't see it?
Does this seem like something that seems like a good idea to support?
How would you go about supporting this if you were the one implementing this? (I'm asking because I assume I'll have more time to work on it in the very near future, but my approach seems flawed).

Thanks as always!

ECST does not compile (gcc or clang) on Windows, issue is either with boost::hana or ECST itself.

After a lot of struggling I managed to figure out how to build ecst on Windows using MinGW. I've build the header library but I don't see any .dll or similar file that I could include in my project.

I'm trying to compile into a format I can just use with Visual Studio, since my main project is already setup in there and I don't want to have to rewrite all my platform specific code to work with MinGW. I know you can't compile ecst with VC, but can I compile it with MinGW into a dll or whatever then use it in a Visual Studio project?

I'm very new to CMake etc... so maybe I'm missing something embarrassingly obvious. I'm a mathematician (not a computer scientist) so I'm not 100% up to date with all this (I assume really useful) technology. So I guess what I'm asking is, is there any way I can compile ecst and then use it in another project or do I have to compile ecst with my project each time (and thus forcing me to not use Visual Studio)?

I'm so confused, every other header-only library I have used is just a .dll, a .lib and a bunch of header files. When I generate with MinGW I don't get any of these things. Just a file named "a.exe" that doesn't appear to do anything. Note that I commented out the examples on the makefile as I don't have SFML installed (I'm use SDL). Reading my post through, I think I must be missing something obvious - apologies if this post is a waste of everyone's time.

Thanks!

Multiple definition errors

Hey, I am experimenting with ecst but am encountering problems with multiple definitions occurring during linking. The full error message is:

C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x9a): multiple definition of `vrm::core::impl::assert::get_state()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x9a): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0xb4): multiple definition of `vrm::core::impl::is_strong_typedef_impl()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0xb4): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0xc2): multiple definition of `ecst::impl::decrement_cv_counter_and_notify_one(std::mutex&, std::condition_variable&, unsigned long long&)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0xc2): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0xfb): multiple definition of `ecst::impl::decrement_cv_counter_and_notify_all(std::mutex&, std::condition_variable&, unsigned long long&)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0xfb): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x134): multiple definition of `ecst::counter_blocker::counter_blocker(unsigned long long)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x134): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x134): multiple definition of `ecst::counter_blocker::counter_blocker(unsigned long long)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x134): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x174): multiple definition of `ecst::counter_blocker::decrement_and_notify_one()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x174): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x1a4): multiple definition of `ecst::counter_blocker::decrement_and_notify_all()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x1a4): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x1d3): multiple definition of `ecst::debug::impl::last_log()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x1d3): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x1e0): multiple definition of `ecst::debug::impl::tstrings()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x1e0): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x1ed): multiple definition of `ecst::debug::impl::fake_cout()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x1ed): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x1fa): multiple definition of `ecst::context::entity::is_valid_id(ecst::entity_id)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x1fa): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x212): multiple definition of `ecst::context::entity::impl::handle::handle()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x212): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x212): multiple definition of `ecst::context::entity::impl::handle::handle()'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x212): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x24c): multiple definition of `ecst::context::entity::impl::handle::handle(ecst::context::entity::impl::uninitialized_handle_init)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x24c): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x24c): multiple definition of `ecst::context::entity::impl::handle::handle(ecst::context::entity::impl::uninitialized_handle_init)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x24c): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x276): multiple definition of `ecst::context::entity::impl::handle::handle(ecst::entity_id, ecst::impl::counter)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x276): first defined here
C:\Users\sgodw\AppData\Local\Temp\ccdxXR59.o:source.cpp:(.text+0x276): multiple definition of `ecst::context::entity::impl::handle::handle(ecst::entity_id, ecst::impl::counter)'
C:\Users\sgodw\AppData\Local\Temp\ccZpoHfj.o:main.cpp:(.text+0x276): first defined here
collect2.exe: error: ld returned 1 exit status

The error above was generated by simply compiling and linking two source files that include ecst.hpp. Unless I am missing something obvious, it seems the solution is to just inline the above definitions since its header only?

Checking if entity has a component

I am currently creating a small collision system that creates contacts similar to what is done in the particle example, but instead of outputting them from the system, the contacts are stored within a collidable component's vector. Then, from the perspective of each entity a unique system exists to perform the custom collision logic. These entities are given label components that allow for a way to differentiate entities from a high level perspective. So after an entity with, say a label component label1, has been given contacts in its collidable component, a system that reads entities with components label1 and collidable runs. It performs the custom collision logic needed for that entity type, but the problem is that there is no way to differentiate to what it is colliding with in the contact.

Obviously, depending on what you're colliding with, the logic might need to be different. But from the access given with the data proxy, it seems it's not possible to test if a given entity as a component. In my case, I simply want to check if the entity that is being collided with has a specific label component such as enemy, etc. In the case of the example code, all entities are assumed to have the same collision logic with each other because they are all particles.

I have perused the source code, and unless I missed something (which I may have), none of the proxy objects seem to give access to the necessary functions that can determine whether or not an entity has a component. So I am wondering whether or not it is possible to add a has_component function to the defer proxy class that can fulfill this role. I understand that this may have been omitted intentionally, and if so I would be interested in hearing how the above problem could be solved without it.

I apologize if this is a bit off-topic for the project issues, and if so, I'll close it.

Problem compiling ecst

Hello,

I tried to compile ecst but I get an error.

I am using gcc 6.3.0 on Linux ubuntu 16.04.
I built boost hana library form sources.
I tried simple example of code using hana and it worked.

Does any one have any idea of what might be wrong?

Does anyone has a similar environment of mine and was able to build ecst correctly?

Thank you very much in advance for your help.

Best regards,

PS: Below is trace of the compiling error

[ 16%] Building CXX object CMakeFiles/particles.dir/example/particles.cpp.o
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp: In instantiation of ‘constexpr boost::hana::pair<First, Second>::pair(boost::hana::pair<T, U>&&) [with T = std::integral_constant<long unsigned int, 0ul>; U = boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> >; = void; First = std::integral_constant<long unsigned int, 0ul>; Second = boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> >]’:
/usr/local/include/boost/hana/fwd/core/make.hpp:61:64: required from ‘constexpr decltype(auto) boost::hana::make_t::operator()(X&& ...) const [with X = {const std::integral_constant<long unsigned int, 0ul>&, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> >}; Tag = boost::hana::pair_tag]’
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:39:34: required from ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = const std::integral_constant<long unsigned int, 1ul>&; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’
/home/mahdi/dev/ecst/include/./ecst/./make_inl/settings_make.inl:19:64: required from here
/usr/local/include/boost/hana/pair.hpp:93:98: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >&)’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘const _hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
/usr/local/include/boost/hana/pair.hpp:94:99: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >&)’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘_hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘_hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘const _hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
/usr/local/include/boost/hana/pair.hpp: In instantiation of ‘static constexpr decltype(auto) boost::hana::first_implboost::hana::pair_tag::apply(P&&) [with P = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >&]’:
/usr/local/include/boost/hana/first.hpp:34:28: required from ‘constexpr decltype(auto) boost::hana::first_t::operator()(Pair&&) const [with Pair = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >&]’
/usr/local/include/boost/hana/map.hpp:307:45: required from ‘static constexpr auto boost::hana::insert_implboost::hana::map_tag::apply(Map&&, Pair&&) [with Map = const boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >&; Pair = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >]’
/usr/local/include/boost/hana/insert.hpp:28:68: required from ‘constexpr decltype(auto) boost::hana::insert_t::operator()(Set&&, Args&& ...) const [with Set = const boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >&; Args = {boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >}]’
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:38:42: required from ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = const std::integral_constant<long unsigned int, 1ul>&; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’
/home/mahdi/dev/ecst/include/./ecst/./make_inl/settings_make.inl:19:64: required from here
/usr/local/include/boost/hana/pair.hpp:166:49: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >&)’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘const _hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/map.hpp:29:0,
from /usr/local/include/boost/hana.hpp:133,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/hash_table.hpp: In instantiation of ‘struct boost::hana::detail::find_indices<boost::hana::detail::hash_table<>, void>’:
/usr/local/include/boost/hana/detail/hash_table.hpp:91:62: required from ‘struct boost::hana::detail::find_index<boost::hana::detail::hash_table<>, void, boost::hana::detail::KeyAtIndex<boost::hana::basic_tuple<> >::apply>’
/usr/local/include/boost/hana/map.hpp:310:20: required from ‘static constexpr auto boost::hana::insert_implboost::hana::map_tag::apply(Map&&, Pair&&) [with Map = const boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >&; Pair = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >]’
/usr/local/include/boost/hana/insert.hpp:28:68: required from ‘constexpr decltype(auto) boost::hana::insert_t::operator()(Set&&, Args&& ...) const [with Set = const boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >&; Args = {boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<std::integral_constant<long unsigned int, 1ul>, boost::hana::integral_constant<bool, false> > >}]’
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:38:42: required from ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = const std::integral_constant<long unsigned int, 1ul>&; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’
/home/mahdi/dev/ecst/include/./ecst/./make_inl/settings_make.inl:19:64: required from here
/usr/local/include/boost/hana/detail/hash_table.hpp:50:50: error: invalid use of void expression
using Hash = typename decltype(hana::hash(std::declval()))::type;
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /home/mahdi/dev/ecst/include/ecst/./mp/option_map.hpp:9:0,
from /home/mahdi/dev/ecst/include/ecst/mp.hpp:10,
from /home/mahdi/dev/ecst/include/ecst/./settings/data.hpp:9,
from /home/mahdi/dev/ecst/include/ecst/settings.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/./utils/sparse_int_set.hpp:12,
from /home/mahdi/dev/ecst/include/./ecst/utils.hpp:9,
from /home/mahdi/dev/ecst/include/ecst.hpp:15,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp: In instantiation of ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = const std::integral_constant<long unsigned int, 1ul>&; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/settings_make.inl:19:64: required from here
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:39:75: error: ‘void new_map’ has incomplete type
bh::make_pair(key, bh::make_pair(FWD(x), bh::false_c)));
^
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:8:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/settings_make.inl: In function ‘constexpr auto ecst::settings::make()’:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/settings_make.inl:20:17: error: invalid use of ‘void’
.add(
^
In file included from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:23:71: error: template argument 1 is invalid
#define ECST_DECAY_DECLTYPE(...) ::ecst::decay_t<decltype(VA_ARGS)>
^
/home/mahdi/dev/ecst/include/./ecst/./make_inl/settings_make.inl:29:27: note: in expansion of macro ‘ECST_DECAY_DECLTYPE’
return impl::data<ECST_DECAY_DECLTYPE(d_opts)>{};
^~~~~~~~~~~~~~~~~~~
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:8:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/settings_make.inl:29:54: error: template argument 1 is invalid
return impl::data<ECST_DECAY_DECLTYPE(d_opts)>{};
^
In file included from /home/mahdi/dev/ecst/example/particles.cpp:7:0:
/home/mahdi/dev/ecst/example/../test/ecst/settings_generator.hpp: In lambda function:
/home/mahdi/dev/ecst/example/../test/ecst/settings_generator.hpp:52:37: error: invalid use of ‘void’
.set_threading(x_threading) // .
^
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp: In instantiation of ‘constexpr boost::hana::pair<First, Second>::pair(boost::hana::pair<T, U>&&) [with T = std::integral_constant<long unsigned int, 0ul>; U = boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> >; = void; First = std::integral_constant<long unsigned int, 0ul>; Second = boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> >]’:
/usr/local/include/boost/hana/fwd/core/make.hpp:61:64: required from ‘constexpr decltype(auto) boost::hana::make_t::operator()(X&& ...) const [with X = {const std::integral_constant<long unsigned int, 0ul>&, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> >}; Tag = boost::hana::pair_tag]’
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:39:34: required from ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = const ecst::signature::component::impl::default_maker_dispatch_t&; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:21: required from ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::position}]’
/home/mahdi/dev/ecst/example/particles.cpp:289:38: required from here
/usr/local/include/boost/hana/pair.hpp:93:98: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >&)’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘const _hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
/usr/local/include/boost/hana/pair.hpp:94:99: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >&)’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘_hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘_hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘const _hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
/usr/local/include/boost/hana/pair.hpp: In instantiation of ‘static constexpr decltype(auto) boost::hana::first_implboost::hana::pair_tag::apply(P&&) [with P = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >&]’:
/usr/local/include/boost/hana/first.hpp:34:28: required from ‘constexpr decltype(auto) boost::hana::first_t::operator()(Pair&&) const [with Pair = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >&]’
/usr/local/include/boost/hana/map.hpp:307:45: required from ‘static constexpr auto boost::hana::insert_implboost::hana::map_tag::apply(Map&&, Pair&&) [with Map = const boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >&; Pair = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >]’
/usr/local/include/boost/hana/insert.hpp:28:68: required from ‘constexpr decltype(auto) boost::hana::insert_t::operator()(Set&&, Args&& ...) const [with Set = const boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >&; Args = {boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >}]’
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:38:42: required from ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = const ecst::signature::component::impl::default_maker_dispatch_t&; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:21: required from ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::position}]’
/home/mahdi/dev/ecst/example/particles.cpp:289:38: required from here
/usr/local/include/boost/hana/pair.hpp:166:49: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >&)’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘const _hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::signature::component::impl::default_maker_dispatch_t, boost::hana::integral_constant<bool, false> > >’
In file included from /home/mahdi/dev/ecst/include/ecst/./mp/option_map.hpp:9:0,
from /home/mahdi/dev/ecst/include/ecst/mp.hpp:10,
from /home/mahdi/dev/ecst/include/ecst/./settings/data.hpp:9,
from /home/mahdi/dev/ecst/include/ecst/settings.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/./utils/sparse_int_set.hpp:12,
from /home/mahdi/dev/ecst/include/./ecst/utils.hpp:9,
from /home/mahdi/dev/ecst/include/ecst.hpp:15,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp: In instantiation of ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = const ecst::signature::component::impl::default_maker_dispatch_t&; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:21: required from ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::position}]’
/home/mahdi/dev/ecst/example/particles.cpp:289:38: required from here
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:39:75: error: ‘void new_map’ has incomplete type
bh::make_pair(key, bh::make_pair(FWD(x), bh::false_c)));
^
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:9:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl: In instantiation of ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::position}]’:
/home/mahdi/dev/ecst/example/particles.cpp:289:38: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:62: error: ‘constexpr const void d_opts’ has incomplete type
.add(impl::keys::storage, impl::default_maker);
^
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl: In instantiation of ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::velocity}]’:
/home/mahdi/dev/ecst/example/particles.cpp:290:38: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:62: error: ‘constexpr const void d_opts’ has incomplete type
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl: In instantiation of ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::acceleration}]’:
/home/mahdi/dev/ecst/example/particles.cpp:291:42: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:62: error: ‘constexpr const void d_opts’ has incomplete type
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl: In instantiation of ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::curve}]’:
/home/mahdi/dev/ecst/example/particles.cpp:292:35: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:62: error: ‘constexpr const void d_opts’ has incomplete type
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl: In instantiation of ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::color}]’:
/home/mahdi/dev/ecst/example/particles.cpp:293:35: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:62: error: ‘constexpr const void d_opts’ has incomplete type
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl: In instantiation of ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::circle_shape}]’:
/home/mahdi/dev/ecst/example/particles.cpp:294:42: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:62: error: ‘constexpr const void d_opts’ has incomplete type
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl: In instantiation of ‘constexpr auto ecst::signature::component::make(TComponentTags ...) [with TComponentTags = {ecst::tag::component::impl::tag_implexample::component::life}]’:
/home/mahdi/dev/ecst/example/particles.cpp:295:34: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_component_make.inl:97:62: error: ‘constexpr const void d_opts’ has incomplete type
/home/mahdi/dev/ecst/example/particles.cpp: In function ‘constexpr auto example::ecst_setup::make_csl()’:
/home/mahdi/dev/ecst/example/particles.cpp:296:17: error: invalid use of void expression
);
^
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp: In instantiation of ‘constexpr boost::hana::pair<First, Second>::pair(boost::hana::pair<T, U>&&) [with T = std::integral_constant<long unsigned int, 0ul>; U = boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> >; = void; First = std::integral_constant<long unsigned int, 0ul>; Second = boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> >]’:
/usr/local/include/boost/hana/fwd/core/make.hpp:61:64: required from ‘constexpr decltype(auto) boost::hana::make_t::operator()(X&& ...) const [with X = {const std::integral_constant<long unsigned int, 0ul>&, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> >}; Tag = boost::hana::pair_tag]’
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:39:34: required from ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = ecst::inner_parallelism::strategy::none::impl::parameters; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: required from ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::acceleration]’
/home/mahdi/dev/ecst/example/particles.cpp:321:42: required from here
/usr/local/include/boost/hana/pair.hpp:93:98: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >&)’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:93:98: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
: detail::ebo<detail::pix<0>, First>(static_cast<T&&>(detail::ebo_get<detail::pix<0>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:93:98: note: ‘const _hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
/usr/local/include/boost/hana/pair.hpp:94:99: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >&)’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<1>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘_hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘_hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
, detail::ebo<detail::pix<1>, Second>(static_cast<U&&>(detail::ebo_get<detail::pix<1>>(other)))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/local/include/boost/hana/pair.hpp:94:99: note: template argument ‘0’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:94:99: note: ‘const _hana::ebo<boost::hana::detail::pix<1>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
/usr/local/include/boost/hana/pair.hpp: In instantiation of ‘static constexpr decltype(auto) boost::hana::first_implboost::hana::pair_tag::apply(P&&) [with P = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >&]’:
/usr/local/include/boost/hana/first.hpp:34:28: required from ‘constexpr decltype(auto) boost::hana::first_t::operator()(Pair&&) const [with Pair = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >&]’
/usr/local/include/boost/hana/map.hpp:307:45: required from ‘static constexpr auto boost::hana::insert_implboost::hana::map_tag::apply(Map&&, Pair&&) [with Map = const boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >&; Pair = boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >]’
/usr/local/include/boost/hana/insert.hpp:28:68: required from ‘constexpr decltype(auto) boost::hana::insert_t::operator()(Set&&, Args&& ...) const [with Set = const boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >&; Args = {boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >}]’
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:38:42: required from ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = ecst::inner_parallelism::strategy::none::impl::parameters; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: required from ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::acceleration]’
/home/mahdi/dev/ecst/example/particles.cpp:321:42: required from here
/usr/local/include/boost/hana/pair.hpp:166:49: error: no matching function for call to ‘ebo_get(boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >&)’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, false>&&)
constexpr V&& ebo_get(ebo<K, V, false>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:104:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, false>&)
constexpr V& ebo_get(ebo<K, V, false>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:100:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘_hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, false>&)
constexpr V const& ebo_get(ebo<K, V, false> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:96:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘true’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’ is not derived from ‘const _hana::ebo<boost::hana::detail::pix<0>, V, false>’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: candidate: template<class K, class V> constexpr V&& _hana::ebo_get(_hana::ebo<K, V, true>&&)
constexpr V&& ebo_get(ebo<K, V, true>&& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:91:19: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: candidate: template<class K, class V> constexpr V& _hana::ebo_get(_hana::ebo<K, V, true>&)
constexpr V& ebo_get(ebo<K, V, true>& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:87:18: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘_hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
In file included from /usr/local/include/boost/hana/pair.hpp:17:0,
from /usr/local/include/boost/hana/detail/struct_macros.hpp:27,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: candidate: template<class K, class V> constexpr const V& _hana::ebo_get(const _hana::ebo<K, V, true>&)
constexpr V const& ebo_get(ebo<K, V, true> const& x)
^~~~~~~
/usr/local/include/boost/hana/detail/ebo.hpp:83:24: note: template argument deduction/substitution failed:
In file included from /usr/local/include/boost/hana/detail/struct_macros.hpp:27:0,
from /usr/local/include/boost/hana/adapt_adt.hpp:15,
from /usr/local/include/boost/hana.hpp:59,
from /home/mahdi/dev/ecst/include/./ecst/./aliases/hana.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/aliases.hpp:12,
from /home/mahdi/dev/ecst/include/ecst.hpp:12,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/usr/local/include/boost/hana/pair.hpp:166:49: note: template argument ‘1’ does not match ‘#‘integer_cst’ not supported by dump_decl#’
{ return detail::ebo_get<detail::pix<0>>(static_cast<P&&>(p)); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/hana/pair.hpp:166:49: note: ‘const _hana::ebo<boost::hana::detail::pix<0>, V, true>’ is an ambiguous base class of ‘boost::hana::pair<std::integral_constant<long unsigned int, 0ul>, boost::hana::pair<ecst::inner_parallelism::strategy::none::impl::parameters, boost::hana::integral_constant<bool, false> > >’
In file included from /home/mahdi/dev/ecst/include/ecst/./mp/option_map.hpp:9:0,
from /home/mahdi/dev/ecst/include/ecst/mp.hpp:10,
from /home/mahdi/dev/ecst/include/ecst/./settings/data.hpp:9,
from /home/mahdi/dev/ecst/include/ecst/settings.hpp:9,
from /home/mahdi/dev/ecst/include/./ecst/./utils/sparse_int_set.hpp:12,
from /home/mahdi/dev/ecst/include/./ecst/utils.hpp:9,
from /home/mahdi/dev/ecst/include/ecst.hpp:15,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp: In instantiation of ‘constexpr auto ecst::mp::option_map::impl::data::add(const TKey&, T&&) const [with TKey = std::integral_constant<long unsigned int, 0ul>; T = ecst::inner_parallelism::strategy::none::impl::parameters; TMap = boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >]’:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: required from ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::acceleration]’
/home/mahdi/dev/ecst/example/particles.cpp:321:42: required from here
/home/mahdi/dev/ecst/include/ecst/./mp/./option_map/basic.hpp:39:75: error: ‘void new_map’ has incomplete type
bh::make_pair(key, bh::make_pair(FWD(x), bh::false_c)));
^
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:10:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl: In instantiation of ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::acceleration]’:
/home/mahdi/dev/ecst/example/particles.cpp:321:42: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: error: invalid use of ‘void’
mp::option_map::make() // .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.add(keys::parallelism, ips::none::v()) // .
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mahdi/dev/ecst/example/particles.cpp: In function ‘constexpr auto example::ecst_setup::make_ssl()’:
/home/mahdi/dev/ecst/example/particles.cpp:322:21: error: invalid use of ‘void’
.parallelism(test_p) // .
^
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:10:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl: In instantiation of ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::curve]’:
/home/mahdi/dev/ecst/example/particles.cpp:327:35: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: error: invalid use of ‘void’
mp::option_map::make() // .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.add(keys::parallelism, ips::none::v()) // .
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mahdi/dev/ecst/example/particles.cpp:328:21: error: invalid use of ‘void’
.dependencies(st::acceleration) // .
^
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:10:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl: In instantiation of ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::velocity]’:
/home/mahdi/dev/ecst/example/particles.cpp:334:38: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: error: invalid use of ‘void’
mp::option_map::make() // .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.add(keys::parallelism, ips::none::v()) // .
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mahdi/dev/ecst/example/particles.cpp:335:21: error: invalid use of ‘void’
.parallelism(test_p) // .
^
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:10:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl: In instantiation of ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::render_colored_circle]’:
/home/mahdi/dev/ecst/example/particles.cpp:341:51: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: error: invalid use of ‘void’
mp::option_map::make() // .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.add(keys::parallelism, ips::none::v()) // .
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mahdi/dev/ecst/example/particles.cpp:342:21: error: invalid use of ‘void’
.parallelism(test_p) // .
^
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:10:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl: In instantiation of ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::life]’:
/home/mahdi/dev/ecst/example/particles.cpp:349:34: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: error: invalid use of ‘void’
mp::option_map::make() // .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.add(keys::parallelism, ips::none::v()) // .
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mahdi/dev/ecst/example/particles.cpp:350:21: error: invalid use of ‘void’
.parallelism(test_p) // .
^
In file included from /home/mahdi/dev/ecst/include/./ecst/make_inl.hpp:10:0,
from /home/mahdi/dev/ecst/include/ecst.hpp:51,
from /home/mahdi/dev/ecst/example/particles.cpp:6:
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl: In instantiation of ‘constexpr auto ecst::signature::system::make(TSystemTag) [with TSystemTag = ecst::tag::system::impl::tag_implexample::system::fade]’:
/home/mahdi/dev/ecst/example/particles.cpp:354:34: required from here
/home/mahdi/dev/ecst/include/./ecst/./make_inl/signature_system_make.inl:21:21: error: invalid use of ‘void’
mp::option_map::make() // .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.add(keys::parallelism, ips::none::v()) // .
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mahdi/dev/ecst/example/particles.cpp:355:21: error: invalid use of ‘void’
.parallelism(test_p) // .
^
/home/mahdi/dev/ecst/example/particles.cpp: In function ‘int main()’:
/home/mahdi/dev/ecst/example/particles.cpp:505:68: error: invalid use of void expression
test::run_tests(test_impl, entity_count, make_csl(), make_ssl());
^
CMakeFiles/particles.dir/build.make:62: recipe for target 'CMakeFiles/particles.dir/example/particles.cpp.o' failed
make[2]: *** [CMakeFiles/particles.dir/example/particles.cpp.o] Error 1
CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/particles.dir/all' failed
make[1]: *** [CMakeFiles/particles.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

The thread pool can freeze if all the tasks depend on something that's not being executed

Assumte that the thread pool has only 4 threads, and that there is a DAG path where 5 systems can be executed in parallel. The thread pool may deadlock as every system is waiting for its subtasks to be completed, but they cannot be enqueued as all threads are occupied.

This would probably be improved by making the DAG execution asynchronous (see #21), but it would be nice to detect this "deadlock" from the thread pool and insert additional temporary "virtual threads" that solve the situation.

Using ECST (or derived) as production ready

Hi,

I'm a french developer and I watched your presentation at CppCon last year about an ECS using template meta-programming, it was really great! Based on what you said and presented, we've started to write a small game for iOS and Android. This game is currently in production and I'm thinking about updating our ECS to be closer to what you did here, and eventually contribute to it by forking and Pull Requesting.

So, I would have a few questions about it, and I thought it was convenient to put it here (maybe should I've split these in two issues):

  • Do you think there are any major issues that could prevent it from being used in production? I'm aware it's still WIP, but as it's a small project I'm working on, it's not an issue if, for example, API have to change from time to time.
  • I don't know yet if the full engine we're writing (SDL2, Bullet, ...) we'll be released as Open Source, but it's possible. As you used an AFL v3 license, that I didn't even know it existed, is there any problem using ECST or something derived from that, whether or not we're releasing it as Open Source? From what I read, it's more or less the same thing as the MIT license.

Thank you very much!

Julien

Components without default constructors

Hi, I have another question!

How hard do you think it would be to make it so I can have components that don't have default constructors?

I'd like to be able to pass arguments to the proxy's add_component() method, that would then be forwarded to the components constructor.

For example, I have a triangle class that is immutable after construction:
https://github.com/bjadamson/BoomHS/blob/release/include/engine/gfx/shapes.hpp#L44-L46

But it would be a perfect component, because I can call a function to generate these on demand. Is this possible with the library as is?

ecst include paths

Hi, I'm wondering if you can see an easier way (for me the user) to get all the necessary include paths into my project more easily.

To add #include <ecst.hpp> to my main.cxx file, I needed to add all the following paths to my include path:
bjadamson/BoomHS@eb25b32#diff-b38877107b6e8fb2bd916d913746eb6cR25

Is there a way to make it so I only need to add the following to my include path?

external/hana/include
external/ecst/include

These two shouldn't be necessary, do we agree?

external/ecst/extlibs/vrm_core/include
external/ecst/extlibs/vrm_pp/include

However, without them, I get the following compilation errors:

In file included from /home/benjamin/github/BoomHS/main.cxx:13:
In file included from /home/benjamin/github/BoomHS/external/ecst/include/ecst.hpp:12:
In file included from /home/benjamin/github/BoomHS/external/ecst/include/./ecst/aliases.hpp:8:
/home/benjamin/github/BoomHS/external/ecst/include/./ecst/./aliases/assert.hpp:8:10: fatal error: 'vrm/core/assert.hpp' file not found

include <vrm/core/assert.hpp>

End of search list.
In file included from /home/benjamin/github/BoomHS/main.cxx:13:
In file included from /home/benjamin/github/BoomHS/external/ecst/include/ecst.hpp:12:
In file included from /home/benjamin/github/BoomHS/external/ecst/include/./ecst/aliases.hpp:8:
In file included from /home/benjamin/github/BoomHS/external/ecst/include/./ecst/./aliases/assert.hpp:8:
In file included from /home/benjamin/github/BoomHS/external/ecst/extlibs/vrm_core/include/vrm/core/assert.hpp:8:
/home/benjamin/github/BoomHS/external/ecst/extlibs/vrm_core/include/vrm/core/assert/static_assert_macros.hpp:8:10: fatal error: 'vrm/pp/utils.hpp' file not found

include <vrm/pp/utils.hpp>

     ^

1 error generated.
make[2]: *** [CMakeFiles/boomhs.dir/main.cxx.o] Error 1
make[1]: *** [CMakeFiles/boomhs.dir/all] Error 2
make: *** [all] Error

Benchmark against `ecs_bench`

ecs_bench is a repository benchmarking multiple Rust ECS implementations. It would be cool to benchmark ecst using the same techniques/examples and compare its performance to the Rust ECSs.

Suggestion: Producer/Consumer

Just watched your talk and looked at your particle example. Good job on the library. I didn't really think of system logic being an (implicit) DAG (though one could interpret it as it having a cycle due to the game loop) which is neat.

On to the point of this issue. I have a small suggestion, though I'm not sure how feasible it is or if it is really all that necessary, but I figured I would suggest it anyway.

From my understanding a system can output data that other system(s) can consume (not sure if a set of systems can consume data from one producing system). However, from my observations, this approach requires the system producing the data to produce all of the data before any other system(s) that depend on this data to do any work.

To my knowledge, this problem is exactly the generalised producer/consumer problem. Note that multiple producers could obviously be created from inner parallelism (perhaps other ways too) and multiple consumers from multiple subscribers to the data.

To my belief, having this implemented can further increase the potential to utilise all cores of a system, as if the producer(s) and consumer(s) are only dependent on the shared data they can be ran concurrently (by only providing synchronisation over the shared data to implement the problem).

Multiple components of the same type

I am trying to figure out how one would implement multiple instances of a component. Is having a component like struct MyComponent { std::vector<MyComponentImpl> impl; } the suggested way to do this or do you have any other suggestion?

Asynchronous DAG execution (no intermediate latches)

Currently every fork/join in the implicitly generated DAG has a latch that blocks until all the "fork subtasks" are executed. This is not optimal thread pool usage as blocking is not required here and introduces unnecessary overhead.

An asynchronous execution model should be used instead, with a single latch that wraps everything in order to synchronize it with the "rest of the world".

Pseudocode example:

void run_dag()
{
    ecst::latch l(1);
    run_node_0()
        .then(run_node_1())
        .then(run_node_2a(), run_node_2b(), run_node_2c())
        .then(run_node_3())
        .then([&]{ l.arrive(); });

    l.wait();
}

API Documentation?

Hey, it would be great if there was documentation for the API, so it's easier to understand exactly what the API is.

The "data" proxy object is really neat, but it's API is really hidden. It's not obvious for example how to do various things in the library, such as iterating over all the entities. Trying to learn how to use this project so far has required me digging through the example (and following headers to learn what magical macros are doing for me)

Creating this issue to track the lack of documentation for the API. Even just pointers to the relative classes, indicating which are intended to be use as part of the public API would be massively helpful.

Compilation error using clang 3.9 libc++ on linux

Hey, I ran into a compiler error when I pulled in this library into my project. It's super _easy_ to fix, but I'd like to work out a proper solution with you.

With the code as it is, and my compiler settings as follows, I get the followoing compiler error:

compiler=clang arch=x86 compiler.version=3.9 compiler.libcxx=libc++ build_type=Debug

End of search list.
In file included from /home/benjamin/github/BoomHS/main.cxx:13:
In file included from /home/benjamin/github/BoomHS/external/ecst/include/ecst.hpp:15:
In file included from /home/benjamin/github/BoomHS/external/ecst/include/./ecst/utils.hpp:9:
In file included from /home/benjamin/github/BoomHS/external/ecst/include/./ecst/./utils/sparse_int_set.hpp:9:
In file included from /home/benjamin/github/BoomHS/external/ecst/extlibs/vrm_core/include/vrm/core/experimental/sparse_set.hpp:8:
In file included from /home/benjamin/github/BoomHS/external/ecst/extlibs/vrm_core/include/vrm/core/experimental/sparse_set/base_sparse_set.hpp:8:
In file included from /home/benjamin/github/BoomHS/external/ecst/extlibs/vrm_core/include/vrm/core/experimental/sparse_set/impl/base_sparse_set.hpp:10:
In file included from /home/benjamin/github/BoomHS/external/ecst/extlibs/vrm_core/include/vrm/core/experimental/resizable_buffer.hpp:9:
/home/benjamin/github/BoomHS/external/ecst/extlibs/vrm_core/include/vrm/core/experimental/resizable_buffer/multi_resizable_buffer.hpp:60:38: error: no template named 'tuple_element_t' in namespace 'std'; did you mean 'tuple_element'?
using nth_buffer_type = std::tuple_element_t<TN, buffer_tuple>;
~~~~~^~~~~~~~~~~~~~~
tuple_element
/usr/include/c++/v1/__tuple:44:62: note: 'tuple_element' declared here
template <size_t _Ip, class _Tp> class _LIBCPP_TYPE_VIS_ONLY tuple_element;
^
1 error generated.
make[2]: *** [CMakeFiles/boomhs.dir/main.cxx.o] Error 1
make[1]: *** [CMakeFiles/boomhs.dir/all] Error 2
make: *** [all] Error 2

The fix (for my compiler/setup) is to change this line:
https://github.com/SuperV1234/vrm_core/blob/c0ed6218ba5f89755883ae48db92799c9c1623d2/include/vrm/core/experimental/resizable_buffer/multi_resizable_buffer.hpp#L60

from std::tuple_element_t to std::tuple_element.

Then it compiles fine. However looking at tuple element itself, it seems like the code written should be fine???
http://en.cppreference.com/w/cpp/utility/tuple/tuple_element

What are your thoughts on working around this?

Question about the example

First, thanks for writing this library. It's really interesting to me, it would be nice if this became a solved problem. Anyways, moving onto my question, I'm wondering if you can help me understand what this is for:
https://github.com/SuperV1234/ecst/blob/master/example/pres_code.cpp#L720-L721

when inside the system definition this code is found:
https://github.com/SuperV1234/ecst/blob/master/example/pres_code.cpp#L211-L212

I guess my question is, what does declaring those tags as read/write do? Are they unavailable to the code within the system without first declaring them as read/write?

Thanks !!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.