Array initialization in Managed C++
-
08-07-2019 - |
Question
I wish to declare and initialize a 1D managed array of items.
If it was C# code, I would write it like this:
VdbMethodInfo[] methods = new VdbMethodInfo[] {
new VdbMethodInfo("Method1"),
new VdbMethodInfo("Method2")
};
I am trying to write (well, actually, I'm writing a program generate) the same thing in managed C++...
So far I have:
typedef array<VdbMethodInfo^, 1> MethodArray;
// How do I avoid pre-declaring the size of the array up front?
MethodArray^ methods = gcnew MethodArray(2);
methods[0] = gcnew VdbMethodInfo("Method1");
methods[1] = gcnew VdbMethodInfo("Method2");
There are two problems with this:
- It's more verbose
- It requires me to declare the size of the array up front, which is inconvenient for my code generator
Is there an "array initialization" syntax for GC arrays in Managed C++? What is the correct syntax? Is there a good web link for this and other similar questions?
Solution
The C++/CLI array declare & initialize syntax is not dissimilar from that in C#. Here's an example...
array<String^>^ myArray = gcnew array<String^> {"first", "second"};
OTHER TIPS
MSDN page on managed array syntax: http://msdn.microsoft.com/en-us/library/ts4c4dw6(VS.80).aspx
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow