sfinae
Template check for the existing of a class member function?
Czy jest możliwe napisanie szablonu, który zmienia zachowanie w zależności od tego, czy określona funkcja członkowska jest zd ... ring(), to używa jej; w przeciwnym razie nie. magiczną częścią, której Nie wiem, jak to zrobić, jest część "FUNCTION_EXISTS".
Jak dodać reflection do aplikacji C++?
Chciałbym mieć możliwość introspekcji klasy C++ pod kątem jej nazwy, zawartości (tj. członków i ich typów) itp. Mówię tu o na ... h ograniczonych informacji za pomocą RTTI. Jakie dodatkowe biblioteki (lub inne techniki) mogłyby dostarczyć tych informacji?
Dlaczego powinienem unikać std:: enable if in function signatures
Scott Meyers opublikował treść i status swojej kolejnej książki EC++11.
Napisał, że jedną z pozycji w książce może być "Avo ... ią zwykłej sygnatury funkcji, ale specjalizacji szablonu)?
czy są jakieś różnice dla szablonów funkcji member i non-member?
Sprawdź, czy klasa ma funkcję członka danego podpisu
Proszę o trick szablonu do wykrycia czy klasa ma określoną funkcję członka danej sygnatury.
Problem jest podobny do przytocz ... alną funkcję zdefiniowaną w jednej przestrzeni nazw, gdy jestem w innej)
Możesz mi podpowiedzieć, jak rozwiązać tę zagadkę?
Przykłady C++ SFINAE?
Chcę przejść do meta-programowania szablonów. Wiem, że SFINAE oznacza " niepowodzenie zastępcze nie jest błędem."Ale czy ktoś może mi pokazać dobry użytek z SFINAE?
Jak działa "void t"
Oglądałem wykład Waltera Browna na Cppcon14 o nowoczesnym programowaniu szablonów ( Część I, Część II), gdzie zaprezentował s ... id_t, aby działał. Dlaczego? (Nie rozumiem, dlaczego te typy muszą pasować, nie tylko jakiś domyślny typ wykonuje zadanie?)
Jak wykryć, czy w klasie jest określona zmienna członkowska?
Do tworzenia funkcji szablonu algorytmu muszę wiedzieć, czy x lub X (i y lub Y) w klasie, która jest argumentem szablonu. Moż ... z nieznanymi członkami.
P. S. Proszę, nie umieszczaj tutaj rozwiązań C++11, ponieważ są oczywiste i nieistotne dla pytania.
Wyjaśnij C++ programistom spoza C++
Co to jest SFINAE w C++?
Czy możesz to wyjaśnić słowami zrozumiałymi dla programisty, który nie jest zaznajomiony z C++? Ponadto, jakie pojęcie w języku takim jak Python odpowiada SFINAE?
SFINAE do sprawdzania funkcji dziedzicznych członków
Używając SFINAE, i może wykryć że dana klasa ma określoną funkcję członkowską. Ale co jeśli chcę przetestować odziedziczone ... t;B, void (B::*)()>::value << endl; // false
}
Czy jest sposób na sprawdzenie dziedzicznych funkcji Członkowskich?
Co to jest "Expression SFINAE"?
At http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx , zespół VC++ oficjalnie oświadcza, że nie zaimplementowa ...
X x3 = f(x1, x2); // deduction fails on #1 (cannot add X+X), calls #2
Moje pytanie brzmi: Co to jest "Expression SFINAE"?
Jak wywołać funkcję szablonową, jeśli istnieje, i coś innego w przeciwnym razie?
Chcę zrobić coś takiego
template <typename T>
void foo(const T& t) {
IF bar(t) would compile
bar(t);
... tutaj, dzieląc foo na dwie części, ale nie mogę Dopracować szczegółów. Jaki jest najprostszy sposób na osiągnięcie tego celu?
Jak sprawdzić czy operator = = istnieje?
Próbuję stworzyć przykład, który sprawdziłby istnienie operator== (funkcja member or, non-member). Sprawdzenie, czy klasa ma ... nst C&,constC&) = &operator== );
Ale kompilacja nie powiedzie się, jeśli nie-członek operator= = jest usunięty
SFINAE z nieprawidłowymi parametrami typu function czy array?
Proszę wziąć pod uwagę ten kod:
template<typename T>
char (&f(T[1]))[1];
template<typename T>
char (&f ... tencję wszystkich tych tajemniczych akapitów i wydaje się, że powyższy kod powinien działać i odrzucić pierwsze przeciążenie.
Jak wykryć, czy metoda jest wirtualna?
Starałem się zrobić cechę, aby znaleźć, czy metoda jest virtual: (https://ideone.com/9pfaCZ )
// Seveval structs which shou ... ji, ale check nie jest odrzucany dla typu " zły " w SFINAE :( .
Jaki jest właściwy sposób wykrycia, czy metoda jest virtual?
Kiedy używać `static assert ' zamiast SFINAE?
Używałem (i widziałem używane) static_assert do oznaczania niepożądanych wartości parametrów szablonu. Jednak we wszystkich p ... static_assert ma zaletę jaśniejszego Komunikatu o błędzie kompilatora, który niektórzy uważają za główny cel każdego z nich.
Select class constructor using enable if
Rozważ następujący kod:
#include <iostream>
#include <type_traits>
template <typename T>
struct A {
... takiego jest możliwe dla konstruktora? Czy jest to możliwe z innym konstruktorem (Kopiuj-konstruktor i przenieś-konstruktor)?
SFINAE działa w typie return, ale nie jako parametr szablonu
Używałem idiomu SFINAE już kilka razy i przyzwyczaiłem się do umieszczania std::enable_if<> w parametrach szablonu, a n ... typename std::enable_if<std::is_integral<T>::value>::type>
^
EDIT :
Kod roboczy i kod wadliwy.
Wykrywanie constexpr z SFINAE
Pracuję nad uaktualnieniem kodu C++, aby wykorzystać nową funkcjonalność w C++11. Mam klasę cech z kilkoma funkcjami zwracają ... o działa, ale chciałbym wiedzieć, czy kod jest legalny w C++11. Zwłaszcza, że jak rozumiem zasady dla SFINAE uległy zmianie.
Jeśli adres funkcji nie może być rozwiązany podczas dedukcji, to jest to SFINAE lub Błąd kompilatora?
W C++0x reguły SFINAE zostały uproszczone tak, że jakiekolwiek nieprawidłowe wyrażenie lub typ występujące w "bezpośrednim ko ... tać?
Czy Kompilatory źle odrzucają ten kod?
Czy" bezpośredni kontekst " dedukcji musi być nieco lepiej zdefiniowany?
Dzięki!
Wykrywanie obsługi operatora za pomocą decltype/SFINAE
A (nieco) przestarzały Artykuł bada sposoby użycia decltype wraz z SFINAE do wykrywania, czy typ obsługuje pewne operatory, t ... wykazywały to samo zachowanie. Czy możliwe jest użycie SFINAE w ten sposób, aby wykryć, czy typ obsługuje pewne wyrażenia?
- 1
- 2