============== Beispiellösung [TOC] ============== :import: session05/step01/dim.hpp :import: session05/step01/testit.cpp [fold] ---- SHELL (path=session05/step01,hostname=theon) -------- g++ -Wall -o testit testit.cpp ./testit 1 2 3 4 5 6 ---------------------------------------------------------- Wenn bei der ersten Funktion statt `const char* const* argv` nur `const char**` angegeben wird, dann würde das bedeuten, dass zwar beispielsweise für `argv[0][0]` nur ein Lesezugriff besteht, aber `argv[0]` verändert werden kann. Weil dann die Funktion theoretisch die Möglichkeit hätte einen Zeiger auf einer nur lesbare Zeichenkette bei `argv[0]` unterzubringen, führt das zu einem Problem beim Aufrufer, der davon ausgeht, dass die Möglichkeit eines Schreibzugriffs bei `argv[0][0]` gegeben ist. ---- SHELL (path=session05/step01,hostname=theon) -------- g++ -Wall -c test-declarations.cpp ---------------------------------------------------------- Der Fehler rührt daraus, dass globale Arrays zur Übersetzzeit fest dimensioniert sein müssen. Da `dim(a)` auf der Variante beruht, die die _size_-Methode zur Laufzeit aufruft und daher nicht mit `constexpr` ausgezeichnet werden konnte, ist hier ein Fehler unvermeidlich. :navigate: up -> doc:index back -> doc:session05/page01 next -> doc:session05/page03