2011-06-27 5 views
6

değerini nasıl yazdıramıyorum Programımda std::atomic<unsigned int> kullanıyorum. printf kullanarak değerini nasıl yazdırabilirim? Çünkü sadece %u kullanıyorsam çalışmıyor. cout'u kullanabileceğimi biliyorum, ancak programım printf çağrıları ile dolu ve ben bunların her birini değiştirmek istemiyorum. Önceden std::atomic<unsigned int> yerine unsigned int kullanıyordum, bu yüzden sadece %u kullanıyordum ve bu nedenle baskı iyi çalışıyordu.std :: atomic <imzasız int>

+0

Bize sen denedi kodu göstersem yardımcı olabilir ve bu (çıkış veya hata mesajı) işe yaramadı nasıl – crashmstr

+2

' std :: atom 'üye işlevi değeri okuma (atomik olarak :-). Bunu kullanabilirsin. –

+0

Gerçekten bir atom değişkenine mi ihtiyacınız var? std :: atomic, eşzamanlılık sorunları için değişkene bellek erişimi siparişi vermek içindir. – AJG85

cevap

13
template<typename BaseType> 
struct atomic 
{ 
    operator BaseType() const volatile; 
} 

Temel değeri kaldırmak için bir tahmin kullanın. için

printf("%u", unsigned(atomic_uint)); 
<> `a yüküne sahip()