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.

Mat
208k41 gold badges409 silver badges423 bronze badges
asked May 22, 2015 at 11:26
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>(); 
answered May 22, 2015 at 12:12
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

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

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.