我想使用(例如)C ++(/ clr)中的System.Drawing.PointF变量, 使用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引用使此操作不可能实现,并且没有const不会接受PointF&from调用。 显式添加X()或X.get()没有帮助。 我应该补充一点自己的观点,我的C#太糟糕了,试图以最少的成本解决问题,并用C ++做真正的工作。 提前致谢, 扬
PS: 汉斯·帕桑(Hans Passant)的评论解释说,至少在发布版本中,免费提供了解决方法。我认为这是一个解决方案,因为现在可以将其添加为注释,并且我肯定会保留basic jitter optimizations。谢谢。