Visual Studio'da C++ Tanılamayı Dahil Et

Visual Studio 17.8'den başlayarak, Visual Studio C++ #include dosyalarınızı analiz etmeye yardımcı olur:

  • Her üst bilgi dosyasındaki bir şeyin ne sıklıkta ve nerede kullanıldığını görüntüler.
  • Her #include dosyanın derleme süresini görüntüler. Bu, derleme sürenizi iyileştirme fırsatlarını belirlemenize yardımcı olur.

C++ Tanılamayı ve CodeLens'i dahil et'i etkinleştirme

C++ Tanılama ekle özelliği varsayılan olarak kapalıdır. Bunu açmak için, bağlam menüsünü açmak için kod düzenleyicisine sağ tıklayın ve Yönergeleri>Dahil Et tanılamayı #include aç'ı seçin.

Kod düzenleyicisi alanına sağ tıkladığınızda görüntülenen bağlam menüsünün ekran görüntüsü.

Bağlam menüsünde ekleme yönergeleri seçeneği vurgulanmış olarak gösterilir ve bu seçenek iki seçeneği gösterir: Sıralama # include yönergeleri ve # include diagnostics ayarını açın.

Dosyalarınız #include hakkındaki bilgiler CodeLens aracılığıyla görüntülenir ve varsayılan olarak kapalıdır. İlgili CodeLens ayarlarını açmak için Araçlar>Seçenekleri>Metin Düzenleyicisi>Tüm Diller CodeLens'e> gidin ve hem C++ #include başvurularını göster hem de C++ derleme sürelerini göster'in etkinleştirildiğini onaylayın.

Seçenekler penceresinin ekran görüntüsü.

Seçenekler penceresi, Tüm Diller > CodeLens > Metin Düzenleyicisi olarak ayarlanır. C++ # göster başvuruları içerir ve C++ derleme zamanlarını göster seçenekleri vurgulanır.

Başvuruları görüntüleme #include

Tanılama ekle'yi denemek için yeni bir C++ konsol projesi oluşturun. Ana .cpp dosyanın içeriğini aşağıdaki kodla değiştirin:

#include <iostream>
#include <vector>

// a function that takes a vector of integers and prints them out
void print(std::vector<int> &vec)
{
    for (int i : vec)
    {
        std::cout << i << std::endl;
    }
    std::cout << std::endl;
}

// a function that takes a vector of integers and adds 10 to each element of the vector and store the result in a new vector
std::vector<int> add10(std::vector<int>& vec)
{
    std::vector<int> newVec;
    for (int i : vec)
    {
        newVec.push_back(i + 10);
    }
    return newVec;
}

int main()
{
    std::vector<int> vec = { 7, 5, 16, 8 };

    print(vec);
    auto newVec = add10(vec);
    print(newVec); 
}

C++ Ekleme Tanılamaları açık olduğunda, bir üst bilgi dosyasındaki kodun geçerli kod dosyasında başvurulma sayısı üst bilgi dosyasının üzerinde görüntülenir. Önceki kod örneği için şöyle görünür:

6 references
#include <iostream>
5 references
#include <vector>

Kod düzenleyicisinde yukarıdaki #include <vector> 5 başvuruyu seçin ve bu dosyada kodun <vector> kullanıldığı konumların özeti görüntülenir:

Vektör üst bilgi dosyasındaki kodun nerede kullanıldığını gösteren C++ Tanılama ekle bağlam penceresinin ekran görüntüsü.

C++ Tanılama İçer bağlam penceresi, kodun içinde vektör üst bilgi dosyasındaki kodun geçerli kod dosyasında kullanıldığı beş yer olduğunu gösterir. Örneğin, add10 işlevinin tanımında dönüş değeri ve parametresi olarak iki kez kullanılır. 17. satırda newVec bildiriminde vb. kullanılır.

Kodunuzdaki konumuna gitmek için bir öğe seçin.

Derleme süresini görüntüleme #include

oluşturduğunuz #includeher dosyanın derleme süresini görmek için önce Build Insights kullanarak derleyin.

Çözüm> Derlemesinde Derleme İçgörüleri Çalıştır'ı seçerek> ana menü çubuğundan Derleme İçgörüleri'ni açın. Derleme tamamlandıktan sonra, derlenen çeşitli dosyaların derleme sürelerini listeleyen bir pencere görüntülenir. Kaynak kod penceresine dönün ve her #include dosyanın derleme süresi CodeLens'te görüntülenir. Şuna benzer:

6 references | Build: 0.3560s
#include <iostream>
5 references | Build 0.0360s
#include <vector>

Seyrek kullanılan ancak derleme sürenizi önemli ölçüde etkileyen bir #include yönergeniz varsa, bu araç bunu belirlemenize yardımcı olabilir.

Bu makalede, C++ Include Diagnostics ve CodeLens'in nasıl açılabileceğini ve bir ekleme dosyasındaki bir şeyin ne sıklıkta kullanıldığını ve derleme süresini nasıl etkilediğini analiz etmek için C++ Dahil Etme Tanılaması'nın nasıl #include kullanılacağını gördünüz.

Ayrıca bkz.

C/C++ Temizlemeye genel bakış
Temizleme iletilerini dahil et