[英]Assign CX public value struct contents of native C++ struct
如果我有兩個這樣的結構:
struct A {
float a;
float b;
float c;
float d;
}
public value struct B {
float a;
float b;
float c;
float d;
}
從A轉換為B的最佳方法是什么(反之亦然)。 我可以做些什么: B struct_b = static_cast<B>(A{1,2,3,4})
嗎?
支持的方法是通過轉換運算符:
struct A;
public value struct B {
float a;
float b;
float c;
float d;
internal:
operator A();
};
struct A {
float a;
float b;
float c;
float d;
operator B()
{
return B{ a, b, c, d };
}
};
B::operator A()
{
return A{ a, b, c, d };
}
請注意,Intellisense可能會抱怨帶有紅色波浪線的operator A()
和有關“公共非數據成員”的工具提示,但是您可以忽略它,並且代碼可以編譯。 internal
關鍵字的意思是“在C ++中是public
但未在WinMD中作為元數據的一部分公開”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.