hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar.cct.lsu.edu | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | Buildbot: http://rostam.cct.lsu.edu/ | Log: http://irclog.cct.lsu.edu/
Yorlik has joined #ste||ar
eschnett_ has joined #ste||ar
eschnett_ has quit [Quit: eschnett_]
<hkaiser> Yorlik: please see #3727 for the example you requested
hkaiser has quit [Quit: bye]
nikunj has joined #ste||ar
hkaiser has joined #ste||ar
<Yorlik> o/
<Yorlik> hklaiser - I looked at the PR
<Yorlik> hkaiser: Looks all nice and good to me. So - will I have patch hpx to make this work?
<Yorlik> Or wait for change?
<hkaiser> Yorlik: if somebody approves the PR it will be in HPX ;-)
<Yorlik> Allright - I'l just wait for that. I have to do some other things beforehand anyways.
<hkaiser> Yorlik: a comment on the PR from you might help the process ...
<Yorlik> Thanks a lot for bringing this in - saves a ton of problems with one simple move.
<hkaiser> well, the allocator is everything but simple, but the rest is so, indeed
<Yorlik> I ciouzld ask for someone to please review it :)
<hkaiser> sure, every bit helps
<Yorlik> Yes - the allocator is a work on its own - but now we have an iterface
<Yorlik> Though the allocator is the biggest portionj of it, the small cghanges are the door openers here.
<Yorlik> And since I never wrote an allocator in practise it's big help
* Yorlik heads out 4 nap
hkaiser has quit [Ping timeout: 264 seconds]
parsa is now known as parsa_
hkaiser has joined #ste||ar
ct-clmsn has joined #ste||ar
mdiers_ has quit [Remote host closed the connection]
mdiers_ has joined #ste||ar
<Yorlik> Is there any way in this construction to guarantee, that the order of component assignement is always correct, like component_1 first? I tried constructiong a static_assert, but the expression never evaluated to a constant.
<Yorlik> class composit : public Interface, public component_1<Interface>, public component_2<Interface>{};
nikunj has quit [Remote host closed the connection]
<hkaiser> Yorlik: base classes are initialized in the sequence they are derived from
<Yorlik> The problem is checking a static that is not const doen't give me a const for the static_seert.
<Yorlik> I tried dropping a flag in a static in the Interface and chacking against that flag
<Yorlik> but it didn't work - the compiler, ofc could not know, that I only change thios in the constructor
<hkaiser> Yorlik: I need to have more context to answer
<Yorlik> So - though the static uint acting as a bitfield of which inheritence has already taken place effectivley acts like a const after instantiation, this in not something the comopiuler can know about and I don't have a way to get that information about the order of initialization into a compile time assert
<Yorlik> Lemme slap together a gist really quick
<hkaiser> Yorlik: make your is constexpr
<Yorlik> The id ?
<hkaiser> yah, and the flags
<Yorlik> But I need to change the flags of derived when adding the components
<Yorlik> Making everyhing const violates that.
<Yorlik> I have a weird feeling I'll need some strange metaprogramming to achieve enforcing the order constraints
<hkaiser> Yorlik: I don't think so, the structure of your entity type is copletely compile-time defined, so it the value of your flag
<Yorlik> Every constructor of a component adds a flag to the CRTPed entity Interface
<Yorlik> That violates the constness
<Yorlik> The compiler doesn't understand it's meant as an "assembled const" if you could call it so
<hkaiser> Yorlik: but the structure is compile-time defined, so you should be able to assemble the flags at compile time too
<Yorlik> I am getting errors, when trying to or a flag into the static const mask of the entity Interface
* Yorlik ends up doing typeliste linearization macros ...
<hkaiser> Yorlik: uhh, why's that?
<hkaiser> I can show you how to statically initialize the mask
<Yorlik> Do you have a working example?
<Yorlik> I couldn't figure it out so far
<Yorlik> I ended up putting the multiple inheritance into a typename ...Ts list
<Yorlik> Still have no solution - playing around learning .. but still stuck
<Yorlik> I'm still using CRTP to initialize the entity mask
<Yorlik> And I'm doing it in the constructors of the components
<Yorlik> I made a template function to have a static assertion from comparing two coimponent types, but thats not yet the solutiion
<Yorlik> like: assert_is_smaller< physics<IEntity>, container<IEntity> >
<Yorlik> I think the constructor probably is the wrong place because all the static consts are done then already
<Yorlik> However - it's getting really later here and I direly need sleep.
* Yorlik waves and fades