2012-05-02 18 views
6

Bu stdint.h işleri dahil olmakla şaşırdım ama cstdint içermez.Neden stdint.h bulunabilir ama cstdint değil?

$ aCC sizeof.cpp 
"sizeof.cpp", line 5: error #2005-D: could not open source file "cstdint" 
    #include <cstdint> 
        ^

1 error detected in the compilation of "sizeof.cpp". 
$ aCC --version 
aCC: HP C/aC++ B3910B A.06.12 [Nov 03 2006] 

O ++ g ile aynı şey:

$ g++ --version 
g++ (GCC) 4.2.3 

Nedenini sorabilir miyim? Ve bu sorunu çözmek için herhangi bir yöntem var ama derleyici güncelleme? Teşekkürler.

+0

Neler fark eder – slartibartfast

+0

'cstdint' nerededir? – Gabe

+0

gcc 4.2.3'te, '' tr1 '' –

cevap

5

Derleyiciniz, <cstdint> numaralı eski C++ standardını destekler (C90'ın <stdint.h> numaralı telefonu olmadığı gibi). <cstdint>, C++ 11’de yeni.

+1

altında bulabilirsiniz, anlıyorum, teşekkür ederim. Ama şimdi, soru şu: c99 stdint.h ama C++ 03 dozu neden cstdint'i desteklemiyor? – van

+2

@van: Bu sadece böyle. C++ 03 tarafından başvurulan C standardının sürümü (C++ 98 için yalnızca küçük bir güncelleme olduğu için) hala C90'dı. –

+0

@Charles Bailey haklı. Makinemdeki son gcc (4.6.3) C++ 0x için deneysel desteğe sahip ve uyarıyor "#error Bu dosya, gelecek ISO C++ standardı, C++ 0x için derleyici ve kütüphane desteğini gerektiriyor. Bu destek şu anda deneysel ve -std = C++ 0x veya -std = gnu ++ 0x derleyici seçenekleri ile etkinleştirilebilir. " – useratuniv

İlgili konular