WMT Yeni forum temamız aktif.
Değerli WebmasterTakimi.com ziyaretçileri ve üyeleri.Forumumuza hoşgeldiniz.Yeni temamız artık kullanılabilir durumda.Eksiklikler ve hataların giderilmesi için gördüğünüz hataları buradan bize bildirmenizi rica ediyoruz.Tema hakkında yorum yapmak isterseniz burada bulunan konuya yorum yapabilirsiniz.
Reklam
main fonksyonunda , const int göstergesinin bir değişkenini oluşturdum, ve onu auto& tarafından bildirilen bir değişkene atadım. Tipleri kontrol etmek için decltype(x) kullanılıyor. Const int* türüne dönüşmesini bekliyordum. Fakat is_same sürekli false çeviriyor

Kod:
int main()
{
    int a = 10;
    const int * cp_val= &a;
    auto& x = cp_val;
    bool is_const_int_ptr = std::is_same<decltype(x), const int *>::value; // returns 0

    // *x = 100; // error: assignment of read-only location '* x'
}
Ancak aşağıdaki helper fonksiyonu eklersem:

Kod:
#include <boost/type_index.hpp>

template<typename T> 
void print_type(T)
{cout << "type T is: "<< boost::typeindex::type_id_with_cvr<T>().pretty_name()<< '\n';}
Main’de işlevi çağırıyorum:

Kod:
print_type(x); // It returns int const*
diyor. std::is_same’de bir hata mı yapıyorum. Lütfen yardım edin.
Alt 19.Ekim.2017
  #2
auto& x için, x'i referans olarak açıkça bildiriyorsunuz; bu yüzden onu tipi const int *& ve const_int göstergesi için referans şeklinde olmalıdır.
Derleme hatası mesajından derleme zamanında doğru türünü elde etmek için daha iyi bir fikir (Effective Modern C ++ (Scott Meyers) 'den).

Kod:
template <typename>
struct TD;
o zaman onu böyle kullan:

Kod:
TD<decltype(x)> td;
Böyle bir hata mesajı alacaksınız:

Kod:
source_file.cpp:15:21: error: implicit instantiation of undefined template 'TD<const int *&>'
    TD<decltype(x)> td;
                    ^
Yardımcı işleviniz parametreyi değerlere göre alır; argümanın referans numarası tür tenzilinde dikkate alınmayacak, bu yüzden const int * değerini almış olursunuz.

« önceki Konuya git | sonraki Konuya git »

Şuan bu sayfada bulunan kişiler: 1 kişi (0 üye ve 1 ziyaretçi)
 
Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok
BB kodu Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Seçenekler
Stil



Tüm Zamanlar GMT +2 Olarak Ayarlanmış. Şuanki Zaman: 23:38.

Bize Yazin - Webmaster Forumu - Arşiv - Yukarı git
Powered by vBulletin™ Version 3.8.9 Beta 1
Copyright © 2018 vBulletin Solutions, Inc. All rights reserved.
Yemek tarifleri