News for hackers. Stuff that matters.
Re:Immer is a library of persistent and immutable data struc... by VeryHacker on Wednesday September 11, 2019 @11:54PM (#20947792)
There are constexpr constructors
Re:Immer is a library of persistent and immutable data struc... by saagarjha on Thursday September 12, 2019 @12:38AM (#20948046)
I'm looking for constructors that return immutable objects. Is there something in C++ that can help me?
Re:Immer is a library of persistent and immutable data struc... by nurettin on Thursday September 12, 2019 @01:36AM (#20948355)
Constructors do not return, and return type and lhs are decoupled, so you are looking for

    auto const &lol = make_wtf();
Re:Immer is a library of persistent and immutable data struc... by saagarjha on Thursday September 12, 2019 @01:56AM (#20948445)
Well, more like I’m looking for something that gives you a const that you can’t get rid of. You could use a factory method but it’d be nicer if I could have a constructor that did it.
Re:Immer is a library of persistent and immutable data struc... by munchbunny on Thursday September 12, 2019 @02:08AM (#20948501)
That's just not how C++ is designed. If you want const, you stick const on the member variables or declare member getter functions const. Then the language checks your work when you initialize an object into a constant variable.

This allows you to force an object to be immutable at a compiler enforced level regardless of how the calling code tries to initialize it.

Re:Immer is a library of persistent and immutable data struc... by saagarjha on Thursday September 12, 2019 @02:20AM (#20948571)
Unfortunately I am trying to wrap const to something that wasn’t designed this way: https://news.ycombinator.com/item?id=20948523
Re:Immer is a library of persistent and immutable data struc... by nurettin on Thursday September 12, 2019 @02:38AM (#20948652)
Since soft const constraint is not part of the type, perhaps you could pass it to a lambda function that treats it as a const and another lambda function that treats it as mutable. A sort of const region and mutable region.