Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML] [C::B] błąd parsera przy kompilacji

Ostatnio zmodyfikowano 2012-10-11 13:11
Autor Wiadomość
draculeq
Temat założony przez niniejszego użytkownika
[SFML] [C::B] błąd parsera przy kompilacji
» 2012-10-10 22:13:30
podczas kompilacji wyskakuje błąd:

C:\SFML-1.6 CB\include\SFML\System\Unicode.hpp|85|parse error before `&' token|
C:\SFML-1.6 CB\include\SFML\System\Unicode.hpp|97|parse error before `)' token|
C:\SFML-1.6 CB\include\SFML\System\Unicode.hpp|97|ISO C++ forbids declaration |

Co może być nie tak? ;/
P-66597
cyklopek11
» 2012-10-10 22:29:44
Myślę, że jasnowidzów tutaj raczej nie ma, ale to co można wywnioskować na podstawie przedstawionych przez Ciebie danych to:
- w 85 linijce błędnie użyty '&'
- w 97 linijce błędnie użyty ')' (czy jest tyle samo nawiasów otwierających co zamykających?)
- w 97 linijce jest deklaracja której zabrania standard
P-66598
draculeq
Temat założony przez niniejszego użytkownika
» 2012-10-10 22:34:58
Plik oryginalny ze źródeł SFML
jego fragment:

79        Text(const char*                 Str);
80        Text(const wchar_t*              Str);
81        Text(const Uint8*                Str);
82        Text(const Uint16*               Str);
83        Text(const Uint32*               Str);
84        Text(const std::string&          Str);
85        Text(const std::wstring&         Str);
86        Text(const Unicode::UTF8String&  Str);
87        Text(const Unicode::UTF16String& Str);
88        Text(const Unicode::UTF32String& Str);
89
90        ////////////////////////////////////////////////////////////
91        /// Operator to cast the text to any type of string
92        ///
93        /// \return Converted string
94        ///
95        ////////////////////////////////////////////////////////////
96        operator       std::string          () const;
97        operator       std::wstring         () const;
98        operator       Unicode::UTF8String  () const;
99        operator       Unicode::UTF16String () const;
100        operator const Unicode::UTF32String&() const;
P-66599
cyklopek11
» 2012-10-10 23:04:40
Diagnoza:
Nie znam się kompletnie na bibliotece SFML ale przeprowadzone  badania :-) wskazują, że Twój C::B nie rozpoznaje std::wstring. Mój C::B rozpoznaje i to nawet bez includowania <string> i po zamknięciu pokazanego przez Ciebie kodu w klasę (i wytłumaczeniu mu co to jest np Uint8) łyka kod jak ciepłe buły (w moim C::B zawsze mam wszystko ustawione na "strict" i "pedantic" ze standardem 98 więc jak ten kod łyka to musi być dobrze). Stwórz nowy projekt i sprawdź czy się kompiluje takie coś:
C/C++
#include <string>

std::wstring test;

int main()
{
    return 0;
}
P-66601
draculeq
Temat założony przez niniejszego użytkownika
» 2012-10-11 11:05:42
No i się nie kompiluje

||=== wstring, Debug ===|
C:\...\wstring\main.cpp|3|syntax error before `;' |
||=== Build finished: 1 errors, 0 warnings ===|
P-66621
cyklopek11
» 2012-10-11 13:11:57
Więc wszystko jasne Twój C::B nie rozpoznaje std::wstring. Teraz musisz dojść dlaczego? Sama biblioteka SFML w tym momencie nie ma nic do gadania. Czy grzebałeś coś w katalogu include C::B ??? Jeśli w wyrażeniu: std::wstring zaznaczysz myszką:
wstring i naciśniesz prawy klawisz myszy: Find declaration i nie otworzy Ci się plik nagłówkowy w stylu (nie mam w chwili obecnej dostępu do C::B) basic_string.h czy coś podobnego to znaczy że brakuje ci tego pliku nagłówkowego.
P-66626
« 1 »
  Strona 1 z 1