Кресты / Говнокод #25498 Ссылка на оригинал

0

  1. 1
https://en.cppreference.com/w/cpp/language/lambda

> Explanation
> > <tparams>
> Like in a template declaration, the template parameter list may be followed by an optional requires-clause, which specifies the constraints on the template arguments.
> optional requires-clause
небязательные обязательные пункты.

Переводил почти час.

Запостил: OlegUP OlegUP, (Updated )

Комментарии (26) RSS

    • Длинное , как мой хуй — предлинное тире ставится, ежели натиснуть ALT, затем набрати на клавиатури (не сотовой, на компьютерной!): 0151. Попробуй сам - и восхвали бога.
      Ответить
      • Стертор — пидор

        гляди-ка, работает
        Ответить
    • Есть два гендера варианта группировки:
      • optional (requires-clause)
      • (optional requires)-clause

      Который из них правильный?
      Ответить
      • да первый, в данном случае, просто с переводом requires-clause возникли сложности.
        Ответить
  • > [ captures ] <tparams>(optional)(c++20) ( params ) specifiers exception attr -> ret requires(optional)(c++20) { body }
    О! Теперь в объявлении лямбды есть все виды скобок:
    auto glambda = []<class T>(T a, auto&& b) { return a < b; };
    Ответить
      • И даже так можно:
        auto oo = <::><o>()<%%>;


        Ещё можно так, но потребуется ключик -trigraphs:
        auto oo = ??(??)<o>()??<??>;
        Ответить
        • Блядь, это уже какой-то «Perl». Только если в «Перле» программа из сотни спецсимволов может делать кучу полезной работы (в частности, выполнить команду «rf» на корневом каталоге с флагами «-r» и «-f»), то в крестах программа из сотни спецсимволов не делает нихуя.
          Ответить
          • --вашу программу можно написать в три строчки
            --да, но это во-первых не расширяемо, а во-вторых не безопастно. Вот тебе шаблон на 800 строк который компилируется всего две минуты и делает совершенно безопасный и расширяемый код
            Ответить
          • Как красиво в диграфах:
            <:=:> –— захват всего контекста по значению.
            <:&:> –— захват всего контекста по ссылке.
            Ответить
  • почему такая жопа не работает. std::function<void(auto...)>

    ???
    Ответить
  • а как вам такой говнокод

    any outer = 12;
    std::function<any(const std::initializer_list<any> &)> main1 = [&] (const std::initializer_list<any> &params) ->any {
    auto iter = params.begin();
    auto end = params.end();
    any p0 = end != iter ? *iter++ : any();
    any p1 = end != iter ? *iter++ : any();

    std::cout << outer << std::endl;
    return p0 + p1;
    };

    o1["method2"] = main1;
    any r3 = o1["method2"](any("p1"), any("p2"));
    Ответить
      • any outer = 12;
            std::function<any(const std::initializer_list<any> &)> main1 = [&] (const std::initializer_list<any> &params) ->any {
                auto iter = params.begin();
                auto end = params.end();
                any p0 = end != iter ? *iter++ : any();
                any p1 = end != iter ? *iter++ : any();
        
                std::cout << outer << std::endl;
                return p0 + p1;
            };
        
            o1["method2"] = main1;
            any r3 = o1["method2"](any("p1"), any("p2"));


        так лучше?
        Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8