How to call a extern C++ class constructor ?

norm norm.rowtree at gmail.com
Sat Feb 1 10:21:54 UTC 2020


On Saturday, 1 February 2020 at 08:38:22 UTC, Luhrel wrote:
> On Saturday, 1 February 2020 at 08:32:51 UTC, Ferhat Kurtulmuş 
> wrote:
>> On Saturday, 1 February 2020 at 08:27:07 UTC, Luhrel wrote:
>>> On Saturday, 1 February 2020 at 08:21:29 UTC, Ferhat 
>>> Kurtulmuş wrote:
>>>>
>>>> You cannot. 
>>>> https://dlang.org/spec/cpp_interface.html#using_cpp_classes_from_d
>>>>
>>>> You must use a factory method like createInstance.
>>>
>>> Oh I see, so there's definitively no way to call a c++ ctor 
>>> without modifying the c++ code ?
>>
>> İf you are not allowed to modify that c++ code, you can write 
>> a createInstance function in your custom cpp file.
>
> That was my fear.

It isn't too bad, you need a simple wedge written in C++ that 
returns an instance of any T you want. A simple template function 
usually works, or to make it more generic you can use a variadic 
template to handle N args, but I find variadic templates in C++ 
are still annoying to use.


More information about the Digitalmars-d-learn mailing list