moving from c++ to D is easy?
Ali Çehreli via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Mar 12 14:41:07 PDT 2015
On 03/12/2015 01:19 PM, Namespace wrote:
> On Thursday, 12 March 2015 at 18:57:51 UTC, Ali Çehreli wrote:
>> On 03/12/2015 06:01 AM, ayush wrote:
>>
>> > Is D a lot like c++ ?
>>
>> I came to D from C++. I remember the following being notable
differences:
>>
>> - In D, classes have reference semantics. I quickly realized that this
>> is not an issue because so many of my C++ types were
>> hand-reference-typified :p by this idiom, almost everywhere:
>>
>> class C { /* ... */ };
>> typedef boost::shared_ptr<C> CPtr;
>> void foo(CPtr c);
>
> This is a common mistake. In 99 percent of cases you want to use a
> std::unique_ptr.
Agreed. Here is an excerpt from a comment from one of our header files:
"We could not use boost::unique_ptr because the version of the Boost
library that we currently use does not include it."
> std::shared_ptr is rarely common and often an indication of an
> error in design. In general, there is exactly one owner only.
Of course. We had definitions like the following as well, where the C
objects are stored in:
typedef vector<CPtr> MyCs;
> But I think you know that already. :)
I think so. :) Maybe we should pass weak_ptrs around instead of
shared_ptr. Anyway... That's old code and this is a D newsgroup.
Ali
More information about the Digitalmars-d-learn
mailing list