Názor ke článku Proměnlivé šablony a RPC v C++ od Sten - Já na tohle používám opačný přístup, a to...

  • 7. 4. 2014 17:10

    Sten (neregistrovaný)

    Já na tohle používám opačný přístup, a to že volání RPC je funktor (pro uvedený příklad funkce sum by to bylo RPC(server, "sum")). Výhodu to má, že se to chová jako úplně obyčejný funktor kompatibilní se std::function. Pokud bych chtěl automatickou dedukci parametrů, můžu vybrat jinou specializaci té třídy a zadat jen RPC, operátor () je potom šablonovaný a detekuje typy (tedy zde by to bylo std::cout << RPC(server, "sum")(2, 3) << std::endl). Delayed call řeším jednoduše lambdami (std::function delayed = [=]{ RPC(server, "sum")(2, 3); };). (Btw. interně je to stejně jenom obal JSON-RPC)