Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
Eroare compilare: min max minmax
Last Updated: Jan 13 2019 21:33, Started by
bizpenet
, Jan 12 2019 23:43
·
0
#1
Posted 12 January 2019 - 23:43
Buna ziua
In stl.h am: template <typename T> T MIN(T a, T b) { return a < b ? a : b; } template <typename T> T MAX(T a, T b) { return a > b ? a : b; } template <typename T> T MINMAX(T min, T value, T max) { T tv; tv = (min > value ? min : value); return (max < tv) ? max : tv; } Folosesc GNU Make 4.2.1, nu pot compila pentru ca: stl.h:100:32: error: expected ')' before 'a' template <typename T> T MIN(T a, T b) respectiv stl.h:105:32: error: expected ')' before 'a' template <typename T> T MAX(T a, T b) Nu reusesc sa modific acest cod, rog pe cineva sa o faca. Multumesc frumos. |
#2
Posted 13 January 2019 - 00:21
Codul pare corect, stiu ca compilatoarele dadeau erori mai ciudate cand foloseai template de template sau alte constructii.
Insa n-am mai programat de mult in C++, nu mai stiu ce fac compilatoarele acum. Ca o prima observatie, ar trebui sa folosesti const T& in loc de T pentru a evita copierea in cazul in care compari obiecte mari cu operatorul < sau > overloadat. Dar nu stiu daca-ti rezolva problema, probabbil ca nu. Cred ca eroarea e in alta parte (intr-un *.cpp, nu *.h) si-ti raporteaza compilatorul gresit. Edited by maccip, 13 January 2019 - 00:22. |
#3
Posted 13 January 2019 - 10:56
GNU Make nu e compilator, e un coordonator ce imparte comenzi in stanga si-n dreapta. Ce compilator folosesti defapt?
Codul compileaza: https://godbolt.org/z/FQFlKS |
#4
Posted 13 January 2019 - 14:29
dani.user, on 13 ianuarie 2019 - 10:56, said:
GNU Make nu e compilator, e un coordonator ce imparte comenzi in stanga si-n dreapta. Ce compilator folosesti defapt? Codul compileaza: https://godbolt.org/z/FQFlKS CC = g++49 |
#5
Posted 13 January 2019 - 14:53
Merge si cu 4.9.
MIN/MAX mai apar definite prin macro-uri caz in care te-ar incurca. Incearca sa le scrii cu litera mica. Edited by dani.user, 13 January 2019 - 14:56. |
#6
Posted 13 January 2019 - 21:33
Faptul ca nu da aceiasi eroare la MINMAX ci doar la MIN sau MAX, ma face sa cred ca @dani a ghicit problema.
Poti incerca cu #ifdef, erau niste directive sa te ajute. Eu am avut in cap o alta situatie pe vremea cand faceam un program cu matrici<T>, unde T putea sa fie atat int/double, dar si Submatrice<matrice<T> >. La un moment dat aveam o eroare din asta dubioasa pe care n-am putut-o rezolva, dar am reusit s-o izolez, era intr-adevar o eroare de compilator. Intre timp or mai fi evoluat compilatoarele, mai ales pe partea de template unde C++ statea foarte prost. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users