U++ framework
Do not panic. Ask here before giving up.

Home » Developing U++ » U++ Developers corner » Core chat... (reference counted pointers etc.)
Re: Core chat... [message #12371 is a reply to message #12367] Fri, 26 October 2007 18:47 Go to previous messageGo to previous message
mdelfede is currently offline  mdelfede
Messages: 1313
Registered: September 2007
Ultimate Contributor
luzr wrote on Fri, 26 October 2007 14:01


But does not compile Smile Your template needs deep public copy constructor for T, even if it is not actually used (because reference count is always 1 for COW ops).

Quote:


and I can tell you that if you forget the & you have double controls on screen!



Smile Sounds like a possible solution, but in that case you need to solve the quite complex problem of polymorphic copy - and all that only to make flawed code working somehow.




Well, thinking a bit more about it.... I have the solution : put dummy copy constructors in Ctrl class, that throw an exception or fail an assert... So :
1- You're sure that you don't use the copy-on-write for classes you don't want to.
2- You must not write some cumbersome polymorphic class copy constructor.
Copy constructors *are* there, so my previous example does work Very Happy

So, the solution (with refcounted classes) is to displace the error from picked array to copy constructor Very Happy

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: ValueMap
Next Topic: Quick and dirty solution to .icpp problem...
Goto Forum:
  


Current Time: Mon Aug 31 23:02:53 GMT+2 2026

Total time taken to generate the page: 0.02064 seconds