Suallar 'sfinae'

Değiştirme hatası bir səhv deyil. Bu, şablonların parametrlərinin xüsusiyyətlərini yoxlamaq üçün şablonlara imkan verən C ++ proqramlaşdırma üsuludur və beləliklə, müəyyən obyektlərin mövcud olduqda müxtəlif ixtisaslar üzrə istifadə edilməsinə icazə verilir.
23
Cavablar

Bir funksiyanın varlığını yoxlamaq üçün şablon yazmaq mümkündürmü?

Müəyyən bir üzv funksiyasının bir sinifdə müəyyən olub-olmamasına bağlı olaraq davranışı dəyişdirən bir şablon yazmaq mümkündürmü? Burada yazmaq istərdim ki, sadə bir nümunə: şablon <class T> std :: string optionalToString (T * obj) {if (F ...
set 02 noyabr. '08 saat 11:10 'də
30
Cavablar

C tətbiqində əksini necə əlavə etmək olar?

C ++ sinifini adı, məzmunu (yəni üzvləri və növləri), və s. Üçün devralmaq istərdim. Mən C ++-dan burada deyil, C ++-dan danışıram. C ++ RTTI istifadə edərək məhdud məlumat verdiyini başa düşürəm. Nə əlavə ...
set 03 Sep '08 saat 13:59 'da
2
Cavablar

Niyə funksiyanı imzalamaqda std :: enable_if qarşısını almalıyam?

Scott Myers növbəti kitabının məzmunu və statusu ilə tanış olub, EC ++ 11. Kitabın elementlərindən biri "İmza imzalarında std :: enable_ifdən çəkinin" ola bilərdi. std :: enable_if funksiyası arqument kimi istifadə edilə bilər, çünki tip geri qaytarılır ...
30 yanvar təyin etdi '13 'da 12:07' də
2
Cavablar

Void_t` necə işləyir

Walter Braun Cppcon14 haqqında müasir desen proqramlaşdırma (I hissə, II hissə) haqqında söhbətini izlədim, burada onun void_t SFINAE texnikasını təqdim etdi. Məsələn: Bütün arqumentlər varsa, etibarsız olaraq qiymətləndirilən sadə bir dəyişkən desen verilmişdir ...
29 dekabrda təyin olundu 13:47 da
13
Cavablar

Sınıfın müəyyən bir imza üzvü funksiyasına sahib olub olmadığını yoxlayın.

Bir sinifin bu imza xüsusi bir üzv funksiyası olub-olmadığını öyrənmək üçün nümunə oyunundan xahiş edirəm. Bu problem http://www.gotw.ca/gotw/071.htm saytında qeyd olunana bənzəyir, lakin eyni deyil: Sutter kitabının bəndində o, C sinfinin sualına cavab verdi ...
17 Sentyabrda təyin olundu. '08 saat 11:36 'də
7
Cavablar

C ++ SFINAE nümunələri?

Daha çox meta-proqramlaşdırma şablonları almaq istəyirəm. SFINAE "dəyişdirmə qüsuru səhv deyil" deməkdir. Amma kimsə SFINAE üçün yaxşı mənə göstərə bilərmi?
11 iyun 'da 21:25' də təyin olundu
1
cavab

"SFINAE ifadəsi" nədir?

Http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx ünvanında, VC ++ komandası rəsmi C ++ 11 funksiyasının "Expression SFINAE" funksiyasını hələ tətbiq etmədiyini rəsmən elan edir. Lakin, aşağıdakı kod nümunələri http: //www.open-std.org/jtc ...
29 dır. '12 saat 18:37 'də
1
cavab

'Avtomatik f (params) # 8594;' boş () 'nədir; decltype (..., void ())?

Bu cür bir şeyə baxdığınız kodu tapdım: auto f (T t, size_t n) -> decltype (t.reserve (n), void ()) {..} Mən oxuduğum sənədlər boyunca, decltype kimi imzalanır: decltype (obyekt) və ya decltype (ex ...
22 dekabrda təyin olundu. '12 saat 16:48 'da
2
Cavablar

"Təmiz adam enable_if" legitim C ++?

Çox vaxt şablon girişinin bir növünə əsaslanan bir funksiyanı təmin etmək üçün decltype və vergül operatoru istifadə edərkən "tənbəl şəxsin enable_if" adlandırdığım texnikanı istifadə edirəm.
29 yanvar təyin etdi 1:53 'da 15
10
Cavablar

Sınıfta xüsusi bir üzv dəyişicinin olub olmadığını necə müəyyən etmək olar?

Bir alqoritm şablonu funksiyası yaratmaq üçün x və ya X (və y və ya Y) sinifdə şablon argumentləri olub olmadığını bilmək lazımdır. Bu, MFC CPoint sinfi və ya GDI + PointF sinif və ya digərləri üçün funksiyamdan istifadə edərkən faydalı ola bilər. Bunların hamısı ...
17 iyun 09: 56-da təyin olundu
3
Cavablar

Sabit ifadələr niyə tanımlanmamış davranış üçün istisna olur?

Mən C ++ standartının 2-ci bəndində Daimi ifadələrin 5.19-cu hissəsində müzakirə edilən, daimi ifadənin * yadına salındığını öyrəndim. Bu deyilir: Şəffaf ifadə əsas sabitin ifadəsidir, əgər ...
24 yanvar təyin etdi '14 'də 0:12' da
8
Cavablar

Operatorun == yoxlanılması necədir?

Operatorun == (üzv funksiyası və ya üzv olmayan) mövcudluğunu yoxlamaq üçün nümunə yaratmağa çalışıram. Sınıfın operatoru == olub-olmadığını yoxlamaq asan deyil, lakin qeyri-üzv olmayan operatoru yoxlamaq üçün necə? Buna ehtiyacım var: #include <iostream ...
30 İyun tarixində saat 14:31 'də təyin olundu
5
Cavablar

C ++ SFINAE'yi C ++ başqa bir proqramçıya izah edin

C ++-da SFINAE nədir? Bunu C ++ anlaya bilməyən bir proqramçı üçün başa düşülə bilərsənmi? Ayrıca, Python kimi bir dildə hansı konsepsiya SFINAE?
04 avqust ayına təyin olundu . '10 saat 19:28 'da
2
Cavablar

Enable_if ilə sinif qurucusunu seçin

Aşağıdakı kodu nəzərdən keçirin: #include <iostream> #include <type_traits> şablon <typename T> struct A {int val = 0; şablon <class = typename std :: enable_if <T :: value> :: type> A (int n): val (n) {}; A (......
24 İyul '13 'də saat 21:51' də təyin olundu
3
Cavablar

C ++ üzv funksiyasının mövcudluğunu yoxlayın, bəlkə də qorunur

Sınıfın std :: enable_shared_from_this <Bəzi Bilinməyən Sınıf>) dən miras olan xüsusi bir funksiyaya (xüsusilə, shared_from_this ()) malik olub olmadığını müəyyən etməyə çalışıram. Məsələləri çətinləşdirmək üçün, hətta bu funksiyaya sahib olub olmadığını bilmək lazımdır ...
01 mart 'da saat 10:49' də təyin olundu