C, C++ ve Java kod tabanında bazı kod temizleme, imzalanmış/imzasız karşılaştırmaları düzeltme, statik analizi çalıştırma vb. Yapıyoruz. Biz alıyoruz uyarılarınC/C++ kodunun temizlenmesi, variadic makrolarla ilgili sorunları ortaya çıkarır
Bir
warning: ISO C does not permit named variadic macros
Ve onun arkadaşı Ben sorunu çözmek için C99 standard variadic macro kullanılan C kodunda, Şimdi
warning: ISO C99 requires rest arguments to be used
uyarı, ancak C++ olduğunu kod, doğru cevap nedir? Aynı C99 stilini kullanmak, herhangi bir yanıt görmediğim farklı bir uyarı ile sonuçlanır.
Linux'ta GCC (G ++) 4.4.3 kullanıyoruz.
Orada düzeltmek veya kod belirli bir bölümü için devre dışı bırakabilirsiniz bazı bayrak veya başka bir yöntemdir umuyorum - ama onun hemen hemen her dosyada kullanılan günlük ...
olası yinelenen (http://stackoverflow.com/questions/4786649/are-variadic-macros-nonstandard) –
Kullanımı C++ 11 [Değişkin makroları standart dışı? Are]. GCC komut satırında '-std = C++ 0x' veya' -std = C++ 11' yazın. Ya da sadece uyarıyı göz ardı edin. –
Evet, C++ 11 kullanarak henüz kartlarda yok, sadece yeterince desteklenmiyor (henüz) – Petriborg