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?