metaprogramming
Najlepsze wprowadzenie do metaprogramowania szablonów C++? [zamknięte]
Statyczne metaprogramowanie (ang. "template metaprogramming") jest świetną techniką C++, która pozwala na wykonywanie program ... ej o metaprogramowaniu statycznym C++, jakie są najlepsze źródła (książki,strony internetowe, courseware on-line, cokolwiek)?
Wygodne deklarowanie łańcuchów czasu kompilacji w C++
Możliwość tworzenia i manipulowania ciągami znaków podczas kompilacji w C++ ma kilka przydatnych aplikacji. Chociaż możliwe j ... ray subscripts, i tym podobne). Jednak nie mam czasu (ani wystarczającego zainteresowania) aby zaimplementować takie makro =)
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 Pony (ORM) robi swoje sztuczki?
Pony ORM robi miłą sztuczkę konwersji wyrażenia generatora do SQL. Przykład:
>>> select(p for p in Person if p.na ... rakcyjnej składni Pythona w locie.
[5]}nadal chciałbym zobaczyć, jak ktoś to wyjaśni, źródło wykracza poza mój poziom magii.
Czy jest możliwe ustalenie typu parametru i typu zwracanego lambda?
Biorąc pod uwagę lambda, czy możliwe jest ustalenie typu parametru i typu zwracanego? Jeśli tak, to w jaki sposób?
Zasadnicz ... niłem go na TLambda wersję szablonu funkcji i chcę skonstruować obiekt std::function wewnątrz funkcji (jak pokazano powyżej).
Co to jest dict. atrybut dict klasy Pythona?
>>> class A(object): pass
...
>>> A.__dict__
<dictproxy object at 0x173ef30>
>>> A.__dict__ ... e do A.__dict__. Co? na to <attribute '__dict__' of 'A' objects> Znalezione w A.__dict__.__dict__, a kiedy coś zawiera?
Programowo tworzyć tablice statyczne w czasie kompilacji w C++
Można zdefiniować statyczną tablicę w czasie kompilacji w następujący sposób:
const std::size_t size = 5;
unsigned int ... ga trochę pracy, aby je zdobyć kompilowanie na kompilatorach msvc i Intela, ale mimo to bardzo ciekawe podejście do problemu.
Compile time string hashing
Czytałem w kilku różnych miejscach, że używając nowych liter ciągów w C++11, możliwe jest obliczenie hasha ciągu w czasie kom ... m się odgadnąć, jak wyglądałoby ostateczne rozwiązanie, ale meta_hash<"string"_meta>::value również mogłoby być realne.
Objective-C class - > string like: [nsArray className] - > @"NSArray"
Próbuję pobrać łańcuchową nazwę klasy z samego obiektu klasy.
// For instance
[NSArray className]; // @"NSArray"
Znalazłem ... cji, a w moim przypadku jest to niepotrzebna praca.
Więc jak Mogę uzyskać łańcuch znaków z obiektu klasy, a nie instancją?
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?
Ruby: define method vs. def
Jako ćwiczenie programistyczne napisałem fragment Ruby, który tworzy klasę, tworzy instancje dwóch obiektów z tej klasy, monk ... .
Co sprawia, że komunikat o błędzie jest bardziej oszałamiający jest to, że mam tylko jeden argument dla method_missing...
Pobranie nazwy aktualnie wykonywanej metody
$0 czy jest zmienna dla najwyższego poziomu programu Ruby, ale czy istnieje jedna dla bieżącej metody?
Jak uruchomić kompilator C#, C++ lub Java do obliczania 1+2+3+... + 1000 w czasie kompilacji?
W ostatnim wywiadzie zadano mi bardzo dziwne pytanie. Rozmówca zapytał mnie, Jak mogę obliczyć 1+2+3+...+1000 tylko za pomocą ... st Ta . Warto zajrzeć, jeśli jesteś zainteresowany.
Użyteczną biblioteką meta-programowania C++ jest MPL Boosta ten link .
Jak przekazać argumenty do zdefiniowania metody?
Chciałbym przekazać argument(y) do metody zdefiniowanej za pomocą define_method, jak to zrobić?
Czy można zaimplementować dynamiczne gettery / settery w JavaScript?
Wiem, jak tworzyć gettery i settery dla właściwości, których nazwy już znamy, robiąc coś takiego:
// A trivial example:
fun ... ik JavaScript do tych?
Nie trzeba dodawać, że idealnie chciałbym rozwiązanie, które jest kompatybilne między przeglądarkami.
Czy C++ obsługuje liczniki czasu kompilacji?
W celu introspekcji, czasami chciałem automatycznie przypisać numery seryjne do typów, lub coś podobnego.
Niestety, metaprog ... ter_read ];
} ls;
std::cout << sizeof ls.x << ' ' << sizeof ls.y << '\n'; // print "9 10"
}
Wykonywanie kodu dla każdego wywołania metody w module Ruby
Piszę moduł w Ruby 1.9.2, który definiuje kilka metod. Gdy którakolwiek z tych metod zostanie wywołana, chcę, aby każda z nic ... ała każdą metodę, gdy zostanie wywołana, wyświetli swoją własną nazwę. Zrobi to za pomocą jakiegoś wariantu puts __method__.)
Czym dokładnie jest metaprogramowanie?
Czytałem artykuł na temat programowania ployglota na platformie Java. Niektóre komentarze w artykule odnoszą się do metaprogr ... iejących obiektów w czasie wykonywania (jak to, na co zezwalają niektóre dynamiczne języki, takie jak Python, Ruby i Groovy).
Jak dynamicznie wywoływać metody na podstawie ich nazwy?
Jak mogę wywołać metodę dynamicznie, gdy jej nazwa jest zawarta w zmiennej łańcuchowej? Na przykład:
class MyClass
def fo ... call `foo` on `obj` using the value in `str`.
Jak mogę to zrobić? Czy robienie tego stanowi zagrożenie dla bezpieczeństwa?
Wysyłka znaczników a metody statyczne na zajęciach częściowo specjalistycznych
Załóżmy, że chcę napisać ogólną funkcję void f<T>(), która robi jedną rzecz, jeśli T jest typem POD, a drugą, Jeśli T n ... lt;T, std::is_pod<T>::value>::f(x);
}
Jakie są plusy i minusy stosowania jednej metody nad drugą? Które polecacie?