Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Components without default constructors #8

Closed
bjadamson opened this issue Aug 31, 2016 · 5 comments
Closed

Components without default constructors #8

bjadamson opened this issue Aug 31, 2016 · 5 comments

Comments

@bjadamson
Copy link
Contributor

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?

@bjadamson
Copy link
Contributor Author

Here's the error BTW, it looks like I might have more errors from the types not being movable (I really hope it doesn't require them to be copyable too, haven't gotten there yet though).

/usr/include/c++/v1/tuple:180:73: error: no matching constructor for initialization of 'engine::gfx::triangle'
NOEXCEPT(is_nothrow_default_constructible<_Hp>::value) : value()
^
/usr/include/c++/v1/tuple:389:23: note: in instantiation of member function 'std::__1::__tuple_leaf<0, engine::gfx::triangle, false>::__tuple_leaf' requested here
_LIBCPP_CONSTEXPR __tuple_impl()
^
/usr/include/c++/v1/tuple:503:23: note: in instantiation of member function 'std::__1::__tuple_implstd::__1::__tuple_indices<0, engine::gfx::triangle>::__tuple_impl' requested here
_LIBCPP_CONSTEXPR tuple()
^
/usr/include/c++/v1/array:121:30: note: in instantiation of member function 'std::__1::tupleengine::gfx::triangle::tuple' requested here
struct _LIBCPP_TYPE_VIS_ONLY array
^
/usr/include/c++/v1/type_traits:2023:27: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp =
ecst::context::storage::component::chunk::fixed_bufferboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >, _Args = <>]
decltype(__is_constructible_test(declval<_Tp>(), declval<_Args>()...))
^
/usr/include/c++/v1/type_traits:2072:14: note: in instantiation of template class 'std::__1::__is_constructible<false,
ecst::context::storage::component::chunk::fixed_buffer<boost::hana::basic_tuple<ecst::tag::component::impl::tag_implengine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >>' requested here
: public __is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value,
^
/usr/include/c++/v1/type_traits:2098:14: note: (skipping 1 context in backtrace; use -ftemplate-backtrace-limit=0 to see all)
: public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value
^
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:83:30: note: in instantiation of template class
'std::__1::is_constructibleecst::context::storage::component::chunk::fixed_buffer<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >>'
requested here
detail::fast_and<BOOST_HANA_TT_IS_CONSTRUCTIBLE(Xn, dummy...)...>::value
^
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/detail/intrinsics.hpp:54:55: note: expanded from macro 'BOOST_HANA_TT_IS_CONSTRUCTIBLE'

define BOOST_HANA_TT_IS_CONSTRUCTIBLE(...) ::std::is_constructible<VA_ARGS>::value

                                                  ^

/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:85:19: note: in instantiation of default argument for 'tuple<>' required here
constexpr tuple()
^~~~~
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:68:12: note: while substituting deduced template arguments into function template 'tuple' [with dummy = (no value), $1 = (no value)]
struct tuple
^
/home/benjamin/github/BoomHS/external/ecst/include/ecst/context/./data/make.hpp:21:35: note: in instantiation of function template specialization
'ecst::context::make<ecst::settings::impl::data<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::detail::bucket<boost::hana::integral_constant<unsigned long long, 5>, 5> >, boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 1>,
boost::hana::pair<ecst::settings::impl::fixed_impl<std::__1::integral_constant<unsigned long, 10000> >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integr/usr/include/c++/v1/tuple:180:73: error: no matching constructor for initialization of 'engine::gfx::triangle'
NOEXCEPT(is_nothrow_default_constructible<_Hp>::value) : value()
^
/usr/include/c++/v1/tuple:389:23: note: in instantiation of member function 'std::__1::__tuple_leaf<0, engine::gfx::triangle, false>::__tuple_leaf' requested here
_LIBCPP_CONSTEXPR __tuple_impl()
^
/usr/include/c++/v1/tuple:503:23: note: in instantiation of member function 'std::__1::__tuple_implstd::__1::__tuple_indices<0, engine::gfx::triangle>::__tuple_impl' requested here
_LIBCPP_CONSTEXPR tuple()
^
/usr/include/c++/v1/array:121:30: note: in instantiation of member function 'std::__1::tupleengine::gfx::triangle::tuple' requested here
struct _LIBCPP_TYPE_VIS_ONLY array
^
/usr/include/c++/v1/type_traits:2023:27: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp =
ecst::context::storage::component::chunk::fixed_bufferboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >, _Args = <>]
decltype(__is_constructible_test(declval<_Tp>(), declval<_Args>()...))
^
/usr/include/c++/v1/type_traits:2072:14: note: in instantiation of template class 'std::__1::__is_constructible<false,
ecst::context::storage::component::chunk::fixed_buffer<boost::hana::basic_tuple<ecst::tag::component::impl::tag_implengine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >>' requested here
: public __is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value,
^
/usr/include/c++/v1/type_traits:2098:14: note: (skipping 1 context in backtrace; use -ftemplate-backtrace-limit=0 to see all)
: public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value
^
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:83:30: note: in instantiation of template class
'std::__1::is_constructibleecst::context::storage::component::chunk::fixed_buffer<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >>'
requested here
detail::fast_and<BOOST_HANA_TT_IS_CONSTRUCTIBLE(Xn, dummy...)...>::value
^
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/detail/intrinsics.hpp:54:55: note: expanded from macro 'BOOST_HANA_TT_IS_CONSTRUCTIBLE'

define BOOST_HANA_TT_IS_CONSTRUCTIBLE(...) ::std::is_constructible<VA_ARGS>::value

                                                  ^

/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:85:19: note: in instantiation of default argument for 'tuple<>' required here
constexpr tuple()
^~~~~
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:68:12: note: while substituting deduced template arguments into function template 'tuple' [with dummy = (no value), $1 = (no value)]
struct tuple
^
/home/benjamin/github/BoomHS/external/ecst/include/ecst/context/./data/make.hpp:21:35: note: in instantiation of function template specialization
'ecst::context::make<ecst::settings::impl::data<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::detail::bucket<boost::hana::integral_constant<unsigned long long, 5>, 5> >, boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 1>,
boost::hana::pair<ecst::settings::impl::fixed_impl<std::__1::integral_constant<unsigned long, 10000> >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::,
boost::hana::type_implecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::
>,
boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::rotator,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::,
boost::hana::type_implecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::renderer,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::
>, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 4>, boost::hana::pairecst::settings::impl::scheduler_wrapper<scheduler::s_atomic_counter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 5>, boost::hana::pair<ecst::settings::impl::refresh_parallelism::enabled, boost::hana::integral_constant<bool, false> > > > > > > >' requested here
using ctx_type = decltype(make(TSettings{}));
^
/home/benjamin/github/BoomHS/include/game/boomhs/boomhs.hpp:211:31: note: in instantiation of function template specialization
'ecst::context::make_uptr<ecst::settings::impl::data<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::detail::bucket<boost::hana::integral_constant<unsigned long long, 5>, 5> >, boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 1>,
boost::hana::pair<ecst::settings::impl::fixed_impl<std::__1::integral_constant<unsigned long, 10000> >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::,
boost::hana::type_implecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::
>,
boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::rotator,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::,
boost::hana::type_implecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::renderer,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::
>, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 4>, boost::hana::pairecst::settings::impl::scheduler_wrapper<scheduler::s_atomic_counter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 5>, boost::hana::pair<ecst::settings::impl::refresh_parallelism::enabled, boost::hana::integral_constant<bool, false> > > > > > > >' requested here
auto ctx = ecst::context::make_uptr(s);/usr/include/c++/v1/tuple:180:73: error: no matching constructor for initialization of 'engine::gfx::triangle'
NOEXCEPT(is_nothrow_default_constructible<_Hp>::value) : value()
^
/usr/include/c++/v1/tuple:389:23: note: in instantiation of member function 'std::__1::__tuple_leaf<0, engine::gfx::triangle, false>::__tuple_leaf' requested here
_LIBCPP_CONSTEXPR __tuple_impl()
^
/usr/include/c++/v1/tuple:503:23: note: in instantiation of member function 'std::__1::__tuple_implstd::__1::__tuple_indices<0, engine::gfx::triangle>::__tuple_impl' requested here
_LIBCPP_CONSTEXPR tuple()
^
/usr/include/c++/v1/array:121:30: note: in instantiation of member function 'std::__1::tupleengine::gfx::triangle::tuple' requested here
struct _LIBCPP_TYPE_VIS_ONLY array
^
/usr/include/c++/v1/type_traits:2023:27: note: while substituting deduced template arguments into function template '__is_constructible_test' [with _Tp =
ecst::context::storage::component::chunk::fixed_bufferboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >, _Args = <>]
decltype(__is_constructible_test(declval<_Tp>(), declval<_Args>()...))
^
/usr/include/c++/v1/type_traits:2072:14: note: in instantiation of template class 'std::__1::__is_constructible<false,
ecst::context::storage::component::chunk::fixed_buffer<boost::hana::basic_tuple<ecst::tag::component::impl::tag_implengine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >>' requested here
: public __is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value,
^
/usr/include/c++/v1/type_traits:2098:14: note: (skipping 1 context in backtrace; use -ftemplate-backtrace-limit=0 to see all)
: public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value
^
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:83:30: note: in instantiation of template class
'std::__1::is_constructibleecst::context::storage::component::chunk::fixed_buffer<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, std::__1::integral_constant<unsigned long, 10000> >>'
requested here
detail::fast_and<BOOST_HANA_TT_IS_CONSTRUCTIBLE(Xn, dummy...)...>::value
^
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/detail/intrinsics.hpp:54:55: note: expanded from macro 'BOOST_HANA_TT_IS_CONSTRUCTIBLE'

define BOOST_HANA_TT_IS_CONSTRUCTIBLE(...) ::std::is_constructible<VA_ARGS>::value

                                                  ^

/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:85:19: note: in instantiation of default argument for 'tuple<>' required here
constexpr tuple()
^~~~~
/home/benjamin/github/BoomHS/external/hana/include/boost/hana/tuple.hpp:68:12: note: while substituting deduced template arguments into function template 'tuple' [with dummy = (no value), $1 = (no value)]
struct tuple
^
/home/benjamin/github/BoomHS/external/ecst/include/ecst/context/./data/make.hpp:21:35: note: in instantiation of function template specialization
'ecst::context::make<ecst::settings::impl::data<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::detail::bucket<boost::hana::integral_constant<unsigned long long, 5>, 5> >, boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 1>,
boost::hana::pair<ecst::settings::impl::fixed_impl<std::__1::integral_constant<unsigned long, 10000> >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::,
boost::hana::type_implecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::
>,
boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::rotator,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::,
boost::hana::type_implecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::renderer,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::
>, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 4>, boost::hana::pairecst::settings::impl::scheduler_wrapper<scheduler::s_atomic_counter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 5>, boost::hana::pair<ecst::settings::impl::refresh_parallelism::enabled, boost::hana::integral_constant<bool, false> > > > > > > >' requested here
using ctx_type = decltype(make(TSettings{}));
^
/home/benjamin/github/BoomHS/include/game/boomhs/boomhs.hpp:211:31: note: in instantiation of function template specialization
'ecst::context::make_uptr<ecst::settings::impl::data<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::detail::bucket<boost::hana::integral_constant<unsigned long long, 5>, 5> >, boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 1>,
boost::hana::pair<ecst::settings::impl::fixed_impl<std::__1::integral_constant<unsigned long, 10000> >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::,
boost::hana::type_implecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::
>,
boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::rotator,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::,
boost::hana::type_implecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::renderer,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::
>, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 4>, boost::hana::pairecst::settings::impl::scheduler_wrapper<scheduler::s_atomic_counter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 5>, boost::hana::pair<ecst::settings::impl::refresh_parallelism::enabled, boost::hana::integral_constant<bool, false> > > > > > > >' requested here
auto ctx = ecst::context::make_uptr(s);

al_constant<bool, true> > > > > > > >::,
boost::hana::type_implecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::
>,
boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::rotator,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::,
boost::hana::type_implecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::renderer,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::
>, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 4>, boost::hana::pairecst::settings::impl::scheduler_wrapper<scheduler::s_atomic_counter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 5>, boost::hana::pair<ecst::settings::impl::refresh_parallelism::enabled, boost::hana::integral_constant<bool, false> > > > > > > >' requested here
using ctx_type = decltype(make(TSettings{}));
^
/home/benjamin/github/BoomHS/include/game/boomhs/boomhs.hpp:211:31: note: in instantiation of function template specialization
'ecst::context::make_uptr<ecst::settings::impl::data<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::detail::bucket<boost::hana::integral_constant<unsigned long long, 5>, 5> >, boost::hana::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 1>,
boost::hana::pair<ecst::settings::impl::fixed_impl<std::__1::integral_constant<unsigned long, 10000> >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::,
boost::hana::type_implecst::signature::component::impl::data<boost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >,
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::basic_tuple<boost::hana::pair<std::__1::integral_constant<unsigned long, 0>, boost::hana::pair<ecst::signature::component::impl::contiguous_buffer_maker_t, boost::hana::integral_constant<bool, true> > > > > > > >::
>,
boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<boost::hana::type_impl<ecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::rotator,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<c::model_m >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::,
boost::hana::type_implecst::signature::system::impl::data<ecst::tag::system::impl::tag_impl<s::renderer,
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::pairecst::inner_parallelism::strategy::split_evenly_fn::impl::parameters<ecst::inner_parallelism::strategy::split_evenly_fn::impl::v_cores_getter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 1>, boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 2>,
boost::hana::pairboost::hana::basic_tuple<ecst::tag::component::impl::tag_impl<engine::gfx::triangle >, boost::hana::integral_constant<bool, true> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 3>,
boost::hana::pairboost::hana::basic_tuple<, boost::hana::integral_constant<bool, false> > >, boost::hana::pair<std::__1::integral_constant<unsigned long, 4>,
boost::hana::pairecst::signature::system::impl::output_impl<ecst::signature::system::impl::empty_output_type, boost::hana::integral_constant<bool, false> > > > > > > >::
>, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 4>, boost::hana::pairecst::settings::impl::scheduler_wrapper<scheduler::s_atomic_counter, boost::hana::integral_constant<bool, true> > >,
boost::hana::pair<std::__1::integral_constant<unsigned long, 5>, boost::hana::pair<ecst::settings::impl::refresh_parallelism::enabled, boost::hana::integral_constant<bool, false> > > > > > > >' requested here
auto ctx = ecst::context::make_uptr(s);

@bjadamson
Copy link
Contributor Author

Nevermind, I thought about it and I don't really think this library is the tool for what I was trying to do.

TL;DR nvm!

@OvermindDL1
Copy link

OvermindDL1 commented Aug 31, 2016

For note for any readers:

A no-arg noexcept constructor is required for serializing a component in. It might be possible to alter it to allow components to take, say, a serialization argument so they could unserialize themselves somehow, but in general that really should not be done and components should be more 'pure'.

And in my side-opinion, Components should be absolutely 'pure', no code, only data storage...

@vittorioromeo
Copy link
Owner

@OvermindDL1 @bjadamson: Is there any valid use case for non-default-constructible component types? If this is required for certain projects I can look into it

@OvermindDL1
Copy link

Honestly I would say no. In my experience having a component hold anything but raw data is a horrible horrible code smell. Even Components that have logic (which they should not) should not have non-default constructors as it means their state is too intertwined elsewhere, also a horrible code smell.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants