Hi, ich mal wieder
Ich hab in letzter Zeit viel rumgespielt und einiges ausprobiert (und verstanden). Jetzt möchte ich ein wenig mit GLSL Shadern experimentieren und rekonstruiere gerade die Shader Klasse aus meinem Buch. Dabei werden die Shader mit einer Methode namens "readFile" geladen. Hier mal die Funktion:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
string readFile(const string &filename){
ifstream fileIn(filename.c_str());
if(!fileIn.good()){
return string(); // Leeren String
}
string stringBuffer(istreambuf_iterator<char>(fileIn), istreambuf_iterator<char>());
return stringBuffer;
}
|
Das funktioniert so nicht, er gibt einen Fehler für die Konvertierung der Parameter von stringBuffer aus:
error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax> &)': Konvertierung des Parameters 1 von 'std::string (__cdecl *)(std::istreambuf_iterator<_Elem,_Traits>,std::istreambuf_iterator<_Elem,_Traits> (__cdecl *)(void))' in 'const std::basic_string<_Elem,_Traits,_Ax> &' nicht möglich
Wenn ich das return weglasse läuft das Programm. Was genau ist stringBuffer und wie geb ich ihn zurück?
MfG DK