Error: a brace-enclosed initializer is not allowed here before
aycha mabrouk
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Salut ,j'écris une structure de données qui contient 11 paramètres en c++ ;lors de compilation du code sur vivado HLS j'ai quelque erreur:aidez-moi à corriger.merci
../../../../main.cpp:181:28: error: a brace-enclosed initializer is not allowed here before '{' token
../../../../main.cpp:181:65: error: ISO C++ forbids initialization of member 'parameters' [-fpermissive]
../../../../main.cpp:181:65: error: making 'parameters' static [-fpermissive]
../../../../main.cpp:181:65: error: invalid in-class initialization of static data member of non-integral type 'double [5][1]'
Salut ,j'écris une structure de données qui contient 11 paramètres en c++ ;lors de compilation du code sur vivado HLS j'ai quelque erreur:aidez-moi à corriger.merci
../../../../main.cpp:181:28: error: a brace-enclosed initializer is not allowed here before '{' token
../../../../main.cpp:181:65: error: ISO C++ forbids initialization of member 'parameters' [-fpermissive]
../../../../main.cpp:181:65: error: making 'parameters' static [-fpermissive]
../../../../main.cpp:181:65: error: invalid in-class initialization of static data member of non-integral type 'double [5][1]'
struct model { double parameters[5][1] ={{1},{1},{1},{10},{0.150000000000000}}; double *nr_class[1][1]={ { new double(3) } }; /* number of classes, = 2 in regression/one class svm */ double *totalSV[1][1]= { { new double(38) } }; /* total #SV */ //double svm_node **SV=SVs= double *rho[3][1]= {{3.85250072056665},{1.98260813354295},{-9.85381777928213}}; double *label[3][1]= {{1},{2},{3}}; /* label of each class (label[k]) */ double *sv_indices[38][1]= {{1},{3],{11},{18},{20},{22},{25},{26},{29},{30},{42},{43},{45},{49},{50},{51},{55},{56},{60},{63},{65},{69},{70},{71},{72},{73},{75},{82},{83},{90},{94},{98},{102},{104},{107},{110},{113},{119}}; /* sv_indices[0,...,nSV-1] are values in [1,...,num_traning_data] to indicate SVs in the training set */ double *probA[3][1]= {{-3.04020468884611},{-3.02985537320699},{-1.22838128162279}}; /* pariwise probability information */ double *probB[3][1]= {{-0.143832034298135},{-0.331592706939798},{-0.317353460209991}}; double *sv_coef [38][2]= { {0.0441014900184046,0}, {0.115481676752995,0.0247201450973238}, {0.0284525394158882,0}, {0.115481676752995,0.0247201450973238}, {0.115481676752995,0.0247201450973238}, {0.115481676752995,0.0247201450973238}, {0.0429276473187021,0.0247201450973238}, {0.115481676752995,0.0247201450973238}, {0.115481676752995,0.0247201450973238}, {0.115481676752995,0.0247201450973238}, {0,2.56566567302770}, {-0.115481676752995,0}, {-0.115481676752995,0}, {-0.115481676752995,0}, {-0.115481676752995,0}, {0,2.56566567302770}, {0,1.19304447300938}, {-0.115481676752995,0}, {0,1.37262120001832}, {0,2.56566567302770} {0,2.56566567302770}, {-0.115481676752995,0}, {0,2.56566567302770}, {0,2.56566567302770}, {0,2.56566567302770}, {-0.115481676752995,0}, {-0.115481676752995,0}, {-0.0247201450973238,-2.56566567302770}, {-0.0247201450973238,-0.665006705657444}, {-0.0247201450973238,-2.56566567302770}, {0,-1.82845371567548}, {-0.0247201450973238,-2.56566567302770}, {0,-2.56566567302770}, {-0.0247201450973238,-2.56566567302770}, {-0.0247201450973238,-0.106867010440775}, {0,-1.24158009628657}, {-0.0247201450973238,-2.56566567302770}, {-0.0247201450973238,-1.28942381799513}}; /* coefficients for SVs in decision functions (sv_coef[k-1][l]) */ /* constants in decision functions (rho[k*(k-1)/2]) */ /* for classification only */ //double *label= [1;2;3]; /* label of each class (label[k]) */ double *nSV[3][1] ={{10},{17},{11}}; /* number of SVs for each class (nSV[k]) */ /* nSV[0] + nSV[1] + ... + nSV[k-1] = l */ double *SVs[38][14]={ {-0.579400000000000,-0.924500000000000,-0.878900000000000,-0.907400000000000,-0.902800000000000,-0.979600000000000,-0.977000000000000,-0.918200000000000,-0.904600000000000,-0.965100000000000,-0.972900000000000,-0.941700000000000,-0.961900000000000,-0.936700000000000}, {-0.422700000000000,-0.443500000000000,-0.809000000000000,-0.880800000000000,-0.879800000000000,-0.924100000000000,-0.930800000000000,-0.978100000000000,-0.949100000000000,-0.970100000000000,-0.990400000000000,-0.975300000000000,-0.981400000000000,-0.953000000000000}, {-0.604400000000000,-0.850700000000000,-0.851100000000000,-0.788000000000000,-0.885200000000000,-0.825500000000000,-0.921000000000000,-0.933900000000000,-0.966800000000000,-0.917600000000000,-0.965200000000000,-0.930500000000000,-0.948600000000000,-0.938700000000000}, {-0.624000000000000,-0.648500000000000,-0.985600000000000,-0.876800000000000,-0.893100000000000,-0.938300000000000,-0.919000000000000,-0.885100000000000,-0.948400000000000,-0.899200000000000,-0.970700000000000,-0.911300000000000,-0.970000000000000,-0.944600000000000}, {-0.373800000000000,-0.520300000000000,-0.703800000000000,-0.811600000000000,-0.843900000000000,-0.867900000000000,-0.861400000000000,-0.921700000000000,-0.848200000000000,-0.952100000000000,-0.933600000000000,-0.956300000000000,-0.972600000000000,-0.953500000000000}, {-0.592300000000000,-0.691900000000000,-0.768000000000000,-0.894100000000000,-0.934600000000000,-0.866900000000000,-0.905700000000000,-0.945100000000000,-0.930800000000000,-0.924100000000000,-0.931800000000000,-0.954100000000000,-0.948000000000000,-0.924400000000000}, {-0.654400000000000,-0.672400000000000,-0.835300000000000,-0.712100000000000,-0.832100000000000,-0.886900000000000,-0.937600000000000,-0.940200000000000,-0.886500000000000,-0.936000000000000,-0.931100000000000,-0.939500000000000,-0.956700000000000,-0.919200000000000}, {-0.561800000000000,-0.692600000000000,-0.856300000000000,-0.844700000000000,-0.909900000000000,-0.966400000000000,-0.960200000000000,-0.930600000000000,-0.941100000000000,-0.954500000000000,-0.974700000000000,-0.970400000000000,-0.965500000000000,-0.955400000000000}, {-0.391300000000000,-0.480500000000000,-0.932100000000000,-0.764200000000000,-0.972300000000000,-0.867300000000000,-0.848900000000000,-0.905100000000000,-0.848600000000000,-0.914100000000000,-0.981400000000000,-0.982400000000000,-0.964400000000000,-0.932900000000000}, {-0.396100000000000,-0.744400000000000,-0.801300000000000,-0.727400000000000,-0.803800000000000,-0.792200000000000,-0.971400000000000,-0.910600000000000,-0.871400000000000,-0.888500000000000,-0.925600000000000,-0.908700000000000,-0.957600000000000,-0.940900000000000}, {0.222900000000000,0.123500000000000,-0.748800000000000,-0.749800000000000,-0.844400000000000,-0.844300000000000,-0.850000000000000,-0.773300000000000,-0.812600000000000,-0.917000000000000,-0.845500000000000,-0.868700000000000,-0.912900000000000,-0.848100000000000}, {-0.192100000000000,-0.604500000000000,-0.759700000000000,-0.777900000000000,-0.893400000000000,-0.894400000000000,-0.937800000000000,-0.854600000000000,-0.925500000000000,-0.921700000000000,-0.944000000000000,-0.920000000000000,-0.892500000000000,-0.813400000000000}, {-0.204200000000000,-0.572400000000000,-0.856900000000000,-0.844600000000000,-0.792400000000000,-0.915600000000000,-0.910700000000000,-0.895800000000000,-0.926600000000000,-0.936200000000000,-0.953000000000000,-0.942300000000000,-0.898400000000000,-0.758500000000000}, {-0.0876000000000000,-0.390600000000000,-0.908600000000000,-0.877600000000000,-0.892700000000000,-0.909400000000000,-0.921300000000000,-0.925000000000000,-0.963700000000000,-0.942500000000000,-0.960700000000000,-0.956600000000000,-0.893900000000000,-0.812300000000000}, {-0.0936000000000000,-0.458900000000000,-0.854300000000000,-0.889600000000000,-0.812200000000000,-0.891600000000000,-0.936300000000000,-0.905800000000000,-0.948900000000000,-0.921800000000000,-0.946200000000000,-0.916800000000000,-0.906800000000000,-0.812800000000000}, {0.0935000000000000,-0.146800000000000,-0.573100000000000,-0.545100000000000,-0.589000000000000,-0.881400000000000,-0.871000000000000,-0.753100000000000,-0.849100000000000,-0.841400000000000,-0.978900000000000,-0.876200000000000,-0.948100000000000,-0.873700000000000}, {0.180900000000000,-0.187700000000000,-0.706100000000000,-0.642400000000000,-0.545500000000000,-0.655700000000000,-0.468800000000000,-0.694200000000000,-0.728000000000000,-0.824000000000000,-0.861800000000000,-0.882100000000000,-0.917600000000000,-0.742600000000000}, {-0.0212000000000000,-0.778900000000000,-0.772300000000000,-0.947900000000000,-0.912400000000000,-0.921000000000000,-0.940000000000000,-0.950700000000000,-0.937100000000000,-0.972200000000000,-0.937400000000000,-0.963200000000000,-0.848000000000000,-0.821400000000000}, {0.0572000000000000,-0.277800000000000,-0.757100000000000,-0.712300000000000,-0.838600000000000,-0.938700000000000,-0.926500000000000,-0.938600000000000,-0.942300000000000,-0.965800000000000,-0.956000000000000,-0.933300000000000,-0.909400000000000,-0.826600000000000}, {0.191300000000000,-0.332500000000000,-0.707300000000000,-0.676500000000000,-0.802500000000000,-0.789700000000000,-0.848200000000000,-0.914800000000000,-0.903900000000000,-0.898500000000000,-0.911200000000000,-0.895600000000000,-0.864300000000000,-0.800500000000000}, {0.408700000000000,-0.243800000000000,-0.656500000000000,-0.706000000000000,-0.743500000000000,-0.782400000000000,-0.843800000000000,-0.862300000000000,-0.833800000000000,-0.904400000000000,-0.866400000000000,-0.905800000000000,-0.916900000000000,-0.829200000000000}, {-0.323100000000000,-0.549200000000000,-0.750300000000000,-0.781800000000000,-0.849000000000000,-0.889800000000000,-0.853500000000000,-0.932100000000000,-0.871900000000000,-0.896600000000000,-0.863500000000000,-0.904000000000000,-0.925800000000000,-0.857600000000000}, {0.209400000000000,-0.236800000000000,-0.335700000000000,-0.765000000000000,-0.785700000000000,-0.789900000000000,-0.919700000000000,-0.754400000000000,-0.844700000000000,-0.877600000000000,-0.910800000000000,-0.847100000000000,-0.941700000000000,-0.908500000000000}, {0.242600000000000,-0.0374000000000000,-0.576700000000000,-0.593000000000000,-0.771100000000000,-0.773100000000000,-0.892300000000000,-0.868800000000000,-0.909200000000000,-0.908600000000000,-0.897400000000000,-0.914600000000000,-0.912300000000000,-0.816600000000000}, {0.0511000000000000,-0.258800000000000,-0.668400000000000,-0.737000000000000,-0.832900000000000,-0.832400000000000,-0.887100000000000,-0.877400000000000,-0.971400000000000,-0.885400000000000,-0.963700000000000,-0.970300000000000,-0.929400000000000,-0.857400000000000}, {-0.234300000000000,-0.486400000000000,-0.685100000000000,-0.686200000000000,-0.833600000000000,-0.909700000000000,-0.832900000000000,-0.930600000000000,-0.933100000000000,-0.916400000000000,-0.985400000000000,-0.929200000000000,-0.902100000000000,-0.841800000000000}, {-0.262300000000000,-0.632300000000000,-0.813000000000000,-0.752200000000000,-0.927500000000000,-0.925600000000000,-0.896200000000000,-0.870100000000000,-0.942600000000000,-0.939100000000000,-0.925000000000000,-0.928300000000000,-0.903800000000000,-0.780500000000000}, {0.230000000000000,-0.256200000000000,-0.734400000000000,-0.758100000000000,-0.817300000000000,-0.840100000000000,-0.910500000000000,-0.917400000000000,-0.879500000000000,-0.925600000000000,-0.894500000000000,-0.890100000000000,-0.941900000000000,-0.833400000000000}, {0.0883000000000000,-0.0528000000000000,-0.489900000000000,-0.539800000000000,-0.785300000000000,-0.803000000000000,-0.736500000000000,-0.833100000000000,-0.878600000000000,-0.831800000000000,-0.867600000000000,-0.837800000000000,-0.916700000000000,-0.874400000000000}, {0.254400000000000,-0.228500000000000,-0.674800000000000,-0.654900000000000,-0.790300000000000,-0.860700000000000,-0.852300000000000,-0.853700000000000,-0.905600000000000,-0.901800000000000,-0.971100000000000,-0.901900000000000,-0.919800000000000,-0.902300000000000}, {0.135000000000000,-0.0175000000000000,-0.472800000000000,-0.543200000000000,-0.672200000000000,-0.677100000000000,-0.705400000000000,-0.714900000000000,-0.844500000000000,-0.943600000000000,-0.936000000000000,-0.838600000000000,-0.906000000000000,-0.890100000000000}, {0.222300000000000,-0.114700000000000,-0.625800000000000,-0.679300000000000,-0.746200000000000,-0.826000000000000,-0.852900000000000,-0.891700000000000,-0.918300000000000,-0.882600000000000,-0.885400000000000,-0.919500000000000,-0.937700000000000,-0.847200000000000}, {0.191200000000000,0.0347000000000000,-0.715100000000000,-0.721600000000000,-0.743500000000000,-0.814700000000000,-0.828300000000000,-0.822700000000000,-0.892300000000000,-0.877100000000000,-0.892100000000000,-0.898300000000000,-0.926600000000000,-0.804100000000000}, {0.221700000000000,-0.0990000000000000,-0.589900000000000,-0.711300000000000,-0.716600000000000,-0.862500000000000,-0.843100000000000,-0.892000000000000,-0.849600000000000,-0.915500000000000,-0.889900000000000,-0.929300000000000,-0.964300000000000,-0.842700000000000}, {0.154300000000000,-0.0310000000000000,-0.669200000000000,-0.740100000000000,-0.819800000000000,-0.844400000000000,-0.887100000000000,-0.943400000000000,-0.895600000000000,-0.900100000000000,-0.886500000000000,-0.923400000000000,-0.926200000000000,-0.820000000000000}, {0.171900000000000,-0.159200000000000,-0.259400000000000,-0.510100000000000,-0.631400000000000,-0.626800000000000,-0.765700000000000,-0.787700000000000,-0.832900000000000,-0.825500000000000,-0.883200000000000,-0.859900000000000,-0.940400000000000,-0.801300000000000}, {0.204800000000000,-0.318500000000000,-0.546800000000000,-0.742400000000000,-0.828200000000000,-0.844400000000000,-0.889100000000000,-0.891100000000000,-0.930100000000000,-0.900500000000000,-0.949100000000000,-0.896600000000000,-0.950900000000000,-0.863400000000000}, {0.316800000000000,-0.134600000000000,-0.750300000000000,-0.711100000000000,-0.884900000000000,-0.735900000000000,-0.878500000000000,-0.868500000000000,-0.913100000000000,-0.938700000000000,-0.925300000000000,-0.932200000000000,-0.958400000000000,-0.848600000000000}}; /* XXX */ //int free_sv; /* 1 if svm_model is created by svm_load_model*/ /* 0 if svm_model is created by svm_train */ }; [predict_label1,precision1,prob_estimates_t1]=SVMPredict(LabelS1,SStest1, model); return; };
2 réponses
Bonjour,
Plusieurs choses ne vont pas :
- Comme le message d'erreur l'indique, tu n'es pas sensée initialiser les membres de ta structure ainsi. En C++ il faut par exemple passer par un constructeur, que l'on parle d'une structure ou d'une classe.
- Il n'est pas très logique de stocker tout dans des tableaux à double entrée, en particulier quand il s'agit de vecteurs ou de valeurs numériques.
- Il y a aussi de grosses confusions en matières de typage. Par exemple
- En terme de typage, il n'y a aucune raison de stocker dans un
-
Voici un exemple de constructeur :
Pour récupérer une paire dans deux variables, on peut utiliser std::tie
Voici comment tu pourrais gérer tes vecteurs (et matrices) avec un compilateur récent :
Bonne chance
Plusieurs choses ne vont pas :
- Comme le message d'erreur l'indique, tu n'es pas sensée initialiser les membres de ta structure ainsi. En C++ il faut par exemple passer par un constructeur, que l'on parle d'une structure ou d'une classe.
- Il n'est pas très logique de stocker tout dans des tableaux à double entrée, en particulier quand il s'agit de vecteurs ou de valeurs numériques.
- Il y a aussi de grosses confusions en matières de typage. Par exemple
double * tab[m][n]signifie que tu stockes une matrice de taille
mx
nde
double *(donc une matrice d'adresses mémoires).
- En terme de typage, il n'y a aucune raison de stocker dans un
doubleun nombre de classe.
unsigned intou
size_tseraient plus adéquat.
-
[predict_label1,precision1,prob_estimates_t1]=SVMPredict(LabelS1,SStest1, model);n'est pas possible en C (une fonction n'a qu'une valeur de retour). Si tu veux retourner une paire et l'affecter dans deux variables, c'est possible mais ce n'est pas comme ça qu'on fait.
Voici un exemple de constructeur :
struct MaStructure { int membre1; int membre2; int membre3; MaStructure(int x1, int x2): membre1(x1), membre1(x2) { membre3 = 8; } }; int main() { MaStructure s(3, 7); return 0; }
Pour récupérer une paire dans deux variables, on peut utiliser std::tie
#include <iostream> #include <tuple> int main() { int x, y; std::pair<int, int> p = std::make_pair(3, 7); std::tie(x, y) = p; std::cout << "x = " << x << std::endl << "y = " << y << std::endl; return 0; }
Voici comment tu pourrais gérer tes vecteurs (et matrices) avec un compilateur récent :
#include <iostream> #include <ostream> #include <vector> template <typename T> std::ostream & operator << ( std::ostream & os, const std::vector<T> & v ) { os << '['; for (auto x : v) os << ' ' << x; os << " ]"; return os; } int main() { std::vector<int> v = {1, 2, 3}; std::cout << "v = " << v << std::endl; std::vector<std::vector<int>> m = {{1, 2}, {3, 4}}; std::cout << "m = " << m << std::endl; return 0; }
Bonne chance
Bonjour,
Le compilateur n'aime pas du tout ce qu'il lit, et pour cause.
Quand tu écris
Ensuite, le compilateur est en train de s'étrangler et indique ce qu'il peut.
Le compilateur n'aime pas du tout ce qu'il lit, et pour cause.
Quand tu écris
res = SVMPredict(LabelS1,SStest1, model);, le
resà gauche du égal est un type local. La valeur de retour d'une fonction ne peut être affectée qu'à une instance, certainement pas un type qui plus est local.
Ensuite, le compilateur est en train de s'étrangler et indique ce qu'il peut.
j'ai modifié mon code de cette façon ,maintenant j'essaye de corriger les erreurs et je suis pas sure qu'il fonctionne ou non parce que c'est ma première fois que j'écris un code c ++ en vivado HLS,s'il vous plaît Monsieur pouvez-vous me dit qu'elle est la faute avec une suggestion de correction .merci