сортировка из класса C # с атрибутами (get, set) в класс C ++ без дополнительного экземпляра класса C # - PullRequest
0 голосов
/ 22 декабря 2018

Я хочу использовать (например) переменную System.Drawing.PointF в C ++ (/ clr), используя msclr :: interop :: marshal_as ().Для этого я добавляю специализацию шаблона следующим образом:

using namespace System::Drawing;
namespace msclr {
    namespace interop {
        template<>
        inline mynmsp::Punt marshal_as<mynmsp::Punt, PointF>(PointF const &from) {
            PointF cpf(from);
            return mynmsp::Punt(cpf.X, cpf.Y);
        }
    }
}

Я надеялся достичь этого без дополнительного экземпляра PointF cpf (from);Однако ссылка const делает это невозможным, насколько я вижу, и вызов PointF & from не будет принят без const.Явное добавление X () или X.get () не помогает.Я должен добавить о себе, что мой C # ужасен, пытаясь обойтись с минимумом, делать настоящую работу в C ++.Заранее спасибо, Ян

PS: Комментарий Ханса Пассанта объясняет, что обходной путь обходится бесплатно, по крайней мере, в сборке Release.Я считаю это решением, потому что теперь я могу добавить это в качестве комментария, и я, безусловно, сохраню базовых оптимизаций джиттера .Спасибо.

...