Topic: Compilation in Visual Studio 2017

Dear all,
with the recent changes from Github repo, it seems it is needed VS2017 to compile correctly (I mean, VC141 or VC140, since VC120 cannot compile some files - for example metastep).
Anyway, I currently get some errore in feibspline:

Error    C2079    'oofem::BSplineInterpolation::degree' utilizza class 'std::array<int,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    66    
Error    C2079    'oofem::BSplineInterpolation::knotValues' utilizza class 'std::array<oofem::FloatArray,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    68    
Error    C2079    'oofem::BSplineInterpolation::knotMultiplicity' utilizza class 'std::array<oofem::IntArray,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    70    
Error    C2079    'oofem::BSplineInterpolation::numberOfControlPoints' utilizza class 'std::array<int,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    76    
Error    C2079    'oofem::BSplineInterpolation::knotVector' utilizza class 'std::array<oofem::FloatArray,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    78    
Error    C2079    'oofem::BSplineInterpolation::numberOfKnotSpans' utilizza class 'std::array<int,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    80    
Error    C2109    l'indice richiede un tipo puntatore o matrice    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    170    
Error    C2109    l'indice richiede un tipo puntatore o matrice    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    171    
Error    C2228    l'elemento a sinistra di '.data' deve avere una classe, struttura o unione    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    173    
Error    C2109    l'indice richiede un tipo puntatore o matrice    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    175    
Error    C2109    l'indice richiede un tipo puntatore o matrice    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    176    
Error    C2079    'oofem::BSplineInterpolation::degree' utilizza class 'std::array<int,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    66    
Error    C2079    'oofem::BSplineInterpolation::knotValues' utilizza class 'std::array<oofem::FloatArray,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    68    
Error    C2079    'oofem::BSplineInterpolation::knotMultiplicity' utilizza class 'std::array<oofem::IntArray,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    70    
Error    C2079    'oofem::BSplineInterpolation::numberOfControlPoints' utilizza class 'std::array<int,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    76    
Error    C2079    'oofem::BSplineInterpolation::knotVector' utilizza class 'std::array<oofem::FloatArray,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    78    
Error    C2079    'oofem::BSplineInterpolation::numberOfKnotSpans' utilizza class 'std::array<int,3>' non definito    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    80    
Error    C2109    l'indice richiede un tipo puntatore o matrice    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    170    
Error    C2109    l'indice richiede un tipo puntatore o matrice    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    171    
Error    C2228    l'elemento a sinistra di '.data' deve avere una classe, struttura o unione    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    173    
Error    C2109    l'indice richiede un tipo puntatore o matrice    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    175    
Error    C2109    l'indice richiede un tipo puntatore o matrice    core    c:\OOFEM\src\oofemlib\iga\feibspline.h    176    

anyone can help? can the code be modified to support both gcc and Ms-VC?

Re: Compilation in Visual Studio 2017

Hm, a bit hard to tell with non-english errors, but I think it's a common problem; missing header includes.

I think feibspline.h should have a

#include <array>
#include <vector>

All files should be including what they use, so this is a bug.
The reason this occurs is that one simple doesn't notice this, as we have header that includes another header etc.
Sometimes, differenes in DEFINES, configuration or even compilers, can expose these cases.