Mam istniejącego kodu w C:static inicjalizacji tablicy char w stałej struktury z C do C++
extern const struct sockaddr_un addr =
{
.sun_family = AF_UNIX,
.sun_path = "myreallylongpath"
};
Gdzie sun_path jest tablicę znaków.
Używane do kompilacji dobrze jako C w starszej wersji GCC. Przekształciłem go teraz w C++ i używam GCC v4.7.2. Wciąż otrzymuję błąd:
"C99 designator 'sun_path' outside aggregate intializer"
Czy nie jest możliwe, aby robić to, co robię w C++ lub jest składnia różni się od starego C?
Jeśli konwersja cały kod w C++, należy rozważyć dodanie konstruktora sockaddr_un i wykorzystanie go do tworzenia instancji. –
@NeilKirk: To jest struktura ze standardowego API POSIX C. Nie możesz dodać do niego konstruktora (możesz dodać nazwany konstruktor, ale nie sądzę, że ma to sens). –