Yineleyicinin argüman olarak fnc'ye geçip geçmediğini kontrol etmenin bir yolu var mı reverse_iterator? Kullanabileceğim herhangi bir yineleyici özellik fonksiyonu var mı?Yineleyicinin türü reverse_iterator olup olmadığını kontrol edin
cevap
Bu kısmi uzmanlaşma ile yazmaya Önemsiz: aşağıda işaret rağmen
#include <iterator>
#include <type_traits>
template<typename Iter>
struct is_reverse_iterator
: std::false_type { };
template<typename Iter>
struct is_reverse_iterator<std::reverse_iterator<Iter>>
: std::true_type { };
, bu bir "ters-ters" yineleyici (IMHO olası) davayı işlemez. Bathsheba'nın cevabındaki biraz daha az önemsiz versiyon bu durumu doğru olarak ele alıyor.
Bu, "std :: reverse_iterator
Muhtemelen iki cevap, bu zor davayla farklı şeyler yapar. Neden bir "reverse_iterator" olup olmadığını bilmek istediğinize bağlı olarak, bir çift ters yineleyiciye bir tane olarak davranmak isteyebilirsiniz (çünkü bu aslında 'reverse_iterator' ın bir örneği olan bir türdendir) veya tek bir (çünkü "ileriye doğru", çünkü bağlamda ne anlama gelirse). –
I üretiminde kullanımı bazı kod:
#include <iterator>
#include <type_traits>
template<typename I>
struct is_reverse_iterator : std::false_type
{
};
template<typename I>
struct is_reverse_iterator<std::reverse_iterator<I>>
: std::integral_constant<bool, !is_reverse_iterator<I>::value>
{
};
+1. Teşekkürler. Benim gibi bir yeni başlayan için std kütüphanesinden birkaç yeni şey. Std :: integral_constant', std :: false_type' – ubuntugod
"Üretimde kullandığım bazı kodlar" - asla kullanım durumunuz nedir? Marc Glisse gibi, neden bunu yapmak istediğini göremiyorum. – user2357112
- 1. Listenin bir türü olup olmadığını kontrol edin?
- 2. Yalancı olup olmadığını kontrol edin
- 3. Türün bir arabirim olup olmadığını kontrol edin
- 4. Tablonun var olup olmadığını kontrol edin C#
- 5. Yolun ağda olup olmadığını kontrol edin
- 6. Uzak makinede dosya olup olmadığını kontrol edin
- 7. Anahtarın sözlükte olup olmadığını kontrol edin. Değilse,
- 8. FinderSync uzantısı seçili olup olmadığını kontrol edin
- 9. Rest API'da kayıt olup olmadığını kontrol edin.
- 10. Java'da ResultSet boş olup olmadığını kontrol edin
- 11. Bir sayfanın açık olup olmadığını kontrol edin
- 12. img'nin src olup olmadığını kontrol edin
- 13. Ortam değişkeni ayarlanmış olup olmadığını kontrol edin
- 14. javascript css taşma olup olmadığını kontrol edin
- 15. $ viewContentLoaded Başarılı olup olmadığını kontrol edin
- 16. Makinemin internet erişimi olup olmadığını kontrol edin
- 17. Kaydedilecek bekleyen değişiklikler olup olmadığını kontrol edin
- 18. Tablo üzerinde kısıtlama olup olmadığını kontrol edin
- 19. Veri çerçevesinin mevcut olup olmadığını kontrol edin
- 20. CSS @media Webkit olup olmadığını kontrol edin
- 21. Öğenin animasyonlu olup olmadığını kontrol edin CSS3
- 22. Java'da sürekli değişiklik olup olmadığını kontrol edin?
- 23. Nesnenin nesne listesinde olup olmadığını kontrol edin
- 24. Stdin boş olup olmadığını kontrol edin
- 25. Ruby websocket Kullanıcının olup olmadığını kontrol edin
- 26. Sayısal dizinin maskelenmiş olup olmadığını kontrol edin
- 27. Öğenin selenyumda tıklanabilir olup olmadığını kontrol edin
- 28. Dize sayısal olup olmadığını kontrol edin
- 29. Geçtiğimiz günlerde tarih olup olmadığını kontrol edin
- 30. İşletmenin açık olup olmadığını kontrol edin
indeeds vardır [ 'std :: iterator_traits'] (http://en.cppreference.com/w/cpp/iterator/iterator_traits) olabilir kullanmak mümkün. –
Merak etme, neden bunu yapmak istersiniz? İyi bir kullanım vakasıyla gelmekte zorlanıyorum. –