- Mesaj
- 1.539
- Çözümler
- 56
- Beğeni
- 2.931
- Puan
- 1.839
- Ticaret Puanı
- 0
Bu hatayı daha önce paylaşmış ve çözümü boost kütüphanesini düzenleyerek yapmıştım. Ancak bu iyi bir yol değil. Kütüphaneyi güncelleyince aynı hata bir daha gelecek çünkü. Bu hatanın asıl sebebi:
Server/db/stdafx.h içindeki bu makro
Sebebi ise eski Visual Studio sürümlerinde standart
Bu macro yüzünden Boost içindeki:
ifadesi preprocess sonrası şuna dönüşüyor:
Fakat
hatası oluşuyor.
Çözüm boost’u editlemek değil, bu define’ı kaldırmak.
Server/db/stdafx.h içindeki bu makro
C++:
#define snprintf _snprintf
Sebebi ise eski Visual Studio sürümlerinde standart
snprintf desteği olmadığı için zamanında compatibility amacıyla böyle macro kullanılması. Ancak modern MSVC ve modern Boost artık standart std::snprintf kullanıyor.Bu macro yüzünden Boost içindeki:
C++:
std::snprintf(...)
ifadesi preprocess sonrası şuna dönüşüyor:
C++:
std::_snprintf(...)
Fakat
_snprintf, std namespace’i içinde olmadığı için:
Kod:
'_snprintf': is not a member of 'std'
hatası oluşuyor.
Çözüm boost’u editlemek değil, bu define’ı kaldırmak.