2

I have code that I wrote quite a while ago, and I don't do that much 'C++' these days. I've compiled the code with no issues in 'Visual C++ 2010 Express'. I've compiled it in vs2015 and I get an error with the 'std::array'. Could someone be kind enough to explain my error.

This compiled ok in 'Visual C++ 2010 Express'

// create arrays to hold port write data​
array<DataChunk>^ dataArray = gcnew array<DataChunk>(1008); 

But compiled in vs2015 with the error:

1>c:\users\carl\desktop\pond control\pond control\Form1.h(1199): error C2976: 'std::array': too few template arguments

1>  C:\Program Files\Microsoft Visual Studio 14.0\VC\include\utility(306): note: see declaration of 'std::array'

Any help would be most appreciated.

2
  • ^ or *: array<DataChunk>* dataArray Commented May 22, 2015 at 11:29
  • try: array<DataChunk, 1008>; Commented May 22, 2015 at 11:31

1 Answer 1

1

std::array is a container data type that encapsulates "regular" fixed-size arrays. You need to provide the array size as a template parameter:

auto dataArray = gcnew array<DataChunk,1008>(); 
Sign up to request clarification or add additional context in comments.

2 Comments

I've tried that and it comes up with 'Error:incomplete type is not allowed', at the array declaration after gcnew.
I've installed VS2013 and it compiles ok in that. It must be the libraries in the vs2015 ?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.