-
Notifications
You must be signed in to change notification settings - Fork 99
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
Handles : several issues of these user facing objects #924
Comments
Handles are an intrinsic ingredient to The lifetime of
This freedom to attach handle based facades to virtually any data item allows In particular when designing
This design was described in the first However, having said that, there is absolutely no restriction which would inhibit toolkit The design approach of Frameworks which see the substitution principle for the implementation of the
To conclude:
I hope this explanation clarifies the situation. |
Although I can understand the logic of what you're saying, it feels like you've chosen the wrong language to implement your handle concept ! Now, independently of the conceptual problem, I'd like practical answers to practical problems, so again :
|
And last small question : how do I reopen this issue ? It seems that commenting did not reopen it ? |
One of the main problems LHCb users have been facing when using DD4hep is the concept of Handles and its oddities compared to 'standard' C++ objects. Just to cite a few :
This last point is the most problematic of all, and creates a lot of troubles. in particular it breaks the whole idea of virtuality at the base of many C++ constructs. Think of a simple
vector<Handles>
, hosting obviously Handles on different types all inheriting from the same base. It just does not work !This also has another bad consequence when implementing the code of a pair
MyObject
/MyElement=Handle<MyObject>
: you basically need to have all the code in MyObject and then replicate all signatures in the Handle. I known the theory is that the code should be in the Handle, but that actually quickly fails as soon as some functions are calling each other, since the object has no possibility to call a function on the Handle. Net result is that all our Handles are pure facade, not really needed and only creating troubles.The text was updated successfully, but these errors were encountered: