extern const Probleme
-
asfsdf schrieb:
mit vorbehalt:
in main.cpp:
gar nichts, komplett weg.in header.hpp:
so wie es atm ist.in header.cpp:
extern weg, sonst so wie es ist.Das geht leider nicht.
Nimm ARRAYSIZE in main.cpp das extern weg. Da wohnt sie dann und überall sonst ist sie eben extern.
Das geht auch nicht.

So wie ich das verstanden habe, sind die Vorschläge möglich, wenn es kein const ist.

-
Ok. Also hier ist der Fehler
http://s1.directupload.net/images/131205/omabzy86.pngBei der Kompilierung die ganz oben im Eingangsthread steht.
Camper schrieb:
Schlussfolgerung: nicht-lokale Konstanten mit externer Bindung sind als Templateparameter ungeeignet.
Wahrscheinlich besteht aber auch gar keine Notwendigkeit, dieser Konstante externe Bindung mitzugeben.Hallo Camper.

Leider versteh ich noch nicht, was nun zu tun ist ...
-
Lymogry schrieb:
asfsdf schrieb:
mit vorbehalt:
in main.cpp:
gar nichts, komplett weg.in header.hpp:
so wie es atm ist.in header.cpp:
extern weg, sonst so wie es ist.Das geht leider nicht.
Lymogry schrieb:
Camper schrieb:
Schlussfolgerung: nicht-lokale Konstanten mit externer Bindung sind als Templateparameter ungeeignet.
Wahrscheinlich besteht aber auch gar keine Notwendigkeit, dieser Konstante externe Bindung mitzugeben.Hallo Camper.

Leider versteh ich noch nicht, was nun zu tun ist ...
Ich auch nicht, da ich nicht weiss, welchen Beschränkungen eine potentielle Lösung genügen muss.
-
In den Header (ich meine nicht den Dateinamen) kommt
const int ARRAYSIZE=10;in die anderen Dateien nichts.
-
Beschränkungen?
Ein Array fester Größe soll in mehreren geteilten Headern verfügbar sein. (Ich sortiere meine Fkten gerade nach Outout Header, Algorithmus Header, Input Header usw.)Eigentlich hab ich ein 2D Array. Das will ich aber nicht 2D speichern, sondern nur 1D (<int, ARRAYSIZE*ARRAYSIZE>) und mit ARRAYSIZE*y+x durchlaufen.
Also bin ich sehr dadran interessiert, diese Größe überall verfügbar zu haben.
-
manni66 schrieb:
In den Header (ich meine nicht den Dateinamen) kommt
const int ARRAYSIZE=10;in die anderen Dateien nichts.
Hallo Manni,
so siehts danach aus:
http://s1.directupload.net/images/131205/5nerkl3e.png(das versteh ich nun gar nicht mehr)

-
Lymogry schrieb:
so siehts danach aus:
http://s1.directupload.net/images/131205/5nerkl3e.png(das versteh ich nun gar nicht mehr)

Warum steht da noch extern?
-
ups!!!
Ok, ohne klappts!
Und funktioniert das zufällig auch, wenn ich mehrere header1 header2 habe ..

(so ist das Ursprungsproblem!)
-
Ja, solche Konstanten haben implizite internal linkage, heißt du bekommst keine Probleme wegen doppelten Definitionen wenn der Header mehrmals eingebunden wird.
-
Vielen Dank euch allen!
Es funktioniert.
