I wrote the code, tried to compile, got it:
Severity Code Description Project File Line Suppression State Error LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; поля: _Myarray): (0x04000010). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; поля: _Mysize): (0x04000011). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; поля: _Mygen): (0x04000012). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (801311D7) : Разное количество полей в повторяющихся типах (cliext.impl.vector_impl<cliext::vector<double> ^,0>): (0x0200001e). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; поля: _Myarray): (0x0400001a). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; поля: _Mysize): (0x0400001b). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131188) : Несовместимые объявления полей в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; поля: _Mygen): (0x0400001c). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (801311D7) : Разное количество полей в повторяющихся типах (cliext.impl.vector_impl<bool,0>): (0x0200002a). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; интерфейсы: System.Runtime.CompilerServices.CallConvStdcall): (0x09000001). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_impl<cliext::vector<double> ^,0>; интерфейсы: System.IDisposable): (0x09000002). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<cliext::vector<double> ^,0>; интерфейсы: System.Runtime.CompilerServices.CallConvFastcall): (0x09000003). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<cliext::vector<double> ^,0>; интерфейсы: System.Runtime.CompilerServices.IsVolatile): (0x09000004). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<cliext::vector<double> ^,0>; интерфейсы: System.Runtime.CompilerServices.SuppressMergeCheckAttribute): (0x09000005). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; интерфейсы: System.Runtime.CompilerServices.IsConst): (0x0900000b). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_impl<bool,0>; интерфейсы: System.IDisposable): (0x0900000c). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<bool,0>; интерфейсы: System.IDisposable): (0x0900000d). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<bool,0>; интерфейсы: System.Runtime.CompilerServices.IsLong): (0x0900000e). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118B) : Несовместимые реализованные интерфейсы в повторяющихся типах (типы: cliext.impl.vector_base<bool,0>; интерфейсы: System.Runtime.InteropServices.MarshalAsAttribute): (0x0900000f). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118D) : Несовместимые сведения о макетах в повторяющихся типах (cliext._Dehandle<cliext::vector<double> ^>): (0x0200001c). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118D) : Несовместимые сведения о макетах в повторяющихся типах (cliext.is_handle<cliext::vector<double> ^>): (0x0200001d). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118D) : Несовместимые сведения о макетах в повторяющихся типах (cliext._Dehandle<bool>): (0x02000028). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (8013118D) : Несовместимые сведения о макетах в повторяющихся типах (cliext.is_handle<bool>): (0x02000029). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c000016). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c000018). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c00001a). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c000029). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c00002c). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK2022 metadata operation failed (80131195) : Несовместимые особые атрибуты. (0x0c00002e). Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\TestsTimeTree.obj 1 Error LNK1255 link failed because of metadata errors Coursework C:\Users\user\documents\visual studio 2015\Projects\Coursework\Coursework\LINK 1 What could be wrong? Class Code:
//testTimeVector.h #ifndef _TESTSTIMETREE #define _TESTSTIMETREE #include <cliext\vector> #include "LinearEquationsSystem.h" ref class TestsTimeTree { public: TestsTimeTree(); System::Void PushTime(System::UInt32 size, System::Double time); cliext::vector<System::Double> ^ GetLSMTimesVector(); private: System::Void CheckLSMVector(System::Void); System::Void CalcLSM(System::UInt32 index); System::Void CalcCoefficients(System::UInt32 index); cliext::vector<cliext::vector<System::Double>^> ^ testTimeVector; cliext::vector<System::Double> ^ leastSquareMethodTimesVector; cliext::vector<System::Boolean> ^ isTimeChanged; System::UInt32 numOfTests; System::UInt64 summOfX; System::UInt64 summOfPowX; System::Double summOfY; System::Double summOfYX; System::Double a0; System::Double a1; }; #endif // !_TESTSTIMETREE Cpp:
//TestsTimeTree.cpp #include "TestsTimeTree.h" TestsTimeTree::TestsTimeTree() { testTimeVector = gcnew cliext::vector<cliext::vector<System::Double> ^>(); leastSquareMethodTimesVector = gcnew cliext::vector<System::Double>(); isTimeChanged = gcnew cliext::vector<System::Boolean>(); numOfTests = 0u; summOfX = 0.0; summOfPowX = 0.0; summOfY = 0.0; summOfYX = 0.0; } System::Void TestsTimeTree::PushTime(System::UInt32 size, System::Double time) { // If current expected size of task is smaller then the task size // than resize expected size of task size++; if (testTimeVector->size() < size) { System::Int32 oldSize = testTimeVector->size(); testTimeVector->resize(size); leastSquareMethodTimesVector->resize(size); isTimeChanged->resize(size); for (size_t i = oldSize; i < size; i++) { testTimeVector[i] = gcnew cliext::vector<System::Double>(); isTimeChanged[i] = false; leastSquareMethodTimesVector[i] = 0.0; } } size--; // Push our time testTimeVector[size]->push_back(time); isTimeChanged[size] = true; numOfTests++; CalcCoefficients(size); //---- CheckLSMVector(); CalcLSM(size); return System::Void(); } cliext::vector<System::Double>^ TestsTimeTree::GetLSMTimesVector() { return gcnew cliext::vector<System::Double>(leastSquareMethodTimesVector); } System::Void TestsTimeTree::CheckLSMVector(System::Void) { for (size_t i = 0; i < testTimeVector->size(); i++) { if (isTimeChanged[i]) { CalcLSM(i); } } return System::Void(); } System::Void TestsTimeTree::CalcLSM(System::UInt32 index) { System::Double result = System::Double::MaxValue; System::Int32 minIdx = 0; for (size_t i = 1; i < testTimeVector[index]->size(); i++) { if (System::Math::Pow(testTimeVector[index]->at(i) - a0 - a1 * index, 2.0) < System::Math::Pow(testTimeVector[index]->at(minIdx) - a0 - a1 * index, 2.0)) { minIdx = i; } } leastSquareMethodTimesVector[index] = testTimeVector[index]->at(minIdx); return System::Void(); } System::Void TestsTimeTree::CalcCoefficients(System::UInt32 index) { summOfX += index; System::Double y = testTimeVector[index]->at(testTimeVector[index]->size() - 1); summOfY += y; summOfPowX += System::Math::Pow(index, 2.0); summOfYX += y*index; array<System::Double, 2> ^ inputMatrix = gcnew array<System::Double, 2>(2, 3){{numOfTests, summOfX, summOfY }, {summOfX, summOfPowX, summOfYX}}; LinearEquationsSystem linearEquationSystem(inputMatrix, 2); cliext::vector<System::Double> ^ resultCoefficients = linearEquationSystem.Calculate(0.0000001); a0 = resultCoefficients[0]; a1 = resultCoefficients[1]; return System::Void(); }