W projekcie C++ 11 muszę użyć zewnętrznej biblioteki C. Ta biblioteka główny plik nagłówka określaJak sobie poradzić: redeclaracja wbudowanego w C++ typu "char16_t"
typedef uint16_t char16_t;
A ponieważ to kompilacja programu C++, który obejmuje nie powiedzie tej biblioteki, z komunikatem:
redeclaration of C++ built-in type ‘char16_t’
Jedyny pomysł mam jest zapakowanie całą bibliotekę ale ponieważ char16_t
jest wszechobecne w tej bibliotece, byłoby bardzo czasochłonne (jeśli to możliwe). Czy istnieją pewne rozsądne sposoby radzenia sobie z tym problemem?
Edit:
Mam też inny pomysł usuwania problematycznej linii i zastępując każde wystąpienie char16_t z uint16_t ale musiałbym modyfikować nagłówki biblioteki strona trzecia, a ja nie szczególnie lubię tego pomysłu (nie może być bardziej podobnymi błędami). Zastanawiam się również, czy istnieje jakiś dobry sposób radzenia sobie z szerszym problemem niezgodności między C++ i C, gdy zawiera nagłówki.
'C++ 0x11'. Jeszcze tego nie słyszałem. –
@ ParkYoung-Bae: http://en.wikipedia.org/wiki/C%2B%2B17;) – PlasmaHH
Nie wiem, czy '# define' jest sensowne w twoich oczach ... – PlasmaHH