8

Kodun geri kalanı için eklediğim test için bazı kodum var, bu nedenle de hiçbir zaman testte ulaşılamayacaksınız. i seviye 4 set uyarı beri , bu c4702 sonuçlanır: uyarı ulaşılamaz koddevre dışı bırak c4702 uyarısı c4702'nin çalışması için işe yaramıyor VS 2012

böyle devre dışı çalıştı:

//do something 
    return 0; 

    /*-------------------------------------------------------------------------*/ 

#pragma warning(disable: 4702) 
    //real code 

ama derleyici hala inliyor. i hata olarak her uyarıyı tedavi etmek belirledik çünkü Visual Studio Herhangi bir yardım memnuniyetle mutluluk duyacağız

2012 Premium ... kullanıyorum

Ve bu ... derlemek olmaz.

cevap

17

Yalnızca pragmayı, etkilenen işlevin başlangıcından önce değil, yerine yerleştirmeniz gerekebilir. kod üretimi ile ilişkili olanlardır aralığında 4700-4999, uyarı numaraları için

, aslında uyarı devlet derleyici bir açık küme ayracı karşılaştığında: MSDN docs itibaren

Fonksiyonun geri kalanı için işlev geçerli olacaktır. 4699'dan daha büyük bir sayıya sahip bir uyarı durumunu değiştirmek için işlevdeki uyarı pragma işlevinin kullanılması, yalnızca işlevin bitmesinden sonra geçerli olur. Örneğin bu şekilde

:

#pragma warning(push) 
#pragma warning(disable: 4702) 
bool Do() { 
    return true; 
    return true; // No warning generated 
#pragma warning(pop) 
} 

bool DoDo() { 
    return true; 
    return true; // Generates C4702 
} 
+0

teşekkürler! Bu, Visual Studio 2010 için de geçerlidir. –

+0

Aynı zamanda Visual Studio 2013 için de geçerlidir –

İlgili konular