2012-08-09 8 views
5

ho un typedef definito nel mio codice comecontrastanti dichiarazione

typdef unsigned int size_t; 

che è in conflitto con del stddef

typedef __SIZE_TYPE__ size_t; 

io sono sicuro come ottenere intorno a questo, ma piace ancora di tenere size_t in il mio codice

+3

Pick a nome diverso o metterlo in uno spazio dei nomi. – jrok

+2

Basta scegliere un nome diverso. –

+2

Scegli un nome diverso. –

risposta

17

Due tre opzioni:

1) scegliere un nome diverso, penso che già capito.

2) Utilizzare un namespace:

namespace X 
{ 
    typedef long size_t; 
} 

e il tipo come

X::size_t x; 

3) Ugly, garantito per portare al licenziamento, e mi downvoted:

typedef unsigned int my_size_t; 
#define size_t my_size_t 
+0

AHH. Mi piace la tua risposta migliore. Il problema è che questo è per un progetto e il nome size_t typedef nel mio codice è qualcosa che non posso cambiare. Grazie! – user1496542

+0

@ user1496542 ok, vedere la risposta modificata. –

+0

hahaha alrighty. la risposta namespace vince ancora per me ma grazie ancora! :) – user1496542

2

Probabilmente è una cattiva idea provare a ridefinire un tipo che si trova in uno degli header standard. Cosa stai cercando di realizzare? Perché non vuoi usare la definizione size_t standard?

+0

Questo dovrebbe essere un commento che dice "Scegli un nome diverso". : P – jrok

+0

LOL, hai ragione, quella sembra essere la direzione che la gente ha preso. – jwismar

+0

Vorrei se potessi, ma questo è per un progetto che non posso cambiare quel nome. Grazie per i suggerimenti :) – user1496542

Problemi correlati