Size: a a a

2021 August 09

K

Kerrigan in codingteam
хз
источник
2021 August 10

💮

💮 in codingteam
Free $oftware
источник

FO

FORTRAN ONE LOVE in codingteam
아침 v0.1.0-20210810!
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)

ExampleTypeAddress x = curry_constructor<ExampleTypeAddress, string, string, string, string>()("aa")("bb")("cc")("dd");

vector<ExampleTypePhoneNumber> y;

ExampleType example_type = curry_constructor<
 ExampleType,
 string,
 string,
 bool,
 int,
 ExampleTypeAddress,
 vector<ExampleTypePhoneNumber>
>()("foo")("bar")(false)(22)(x)(y);

cerr << "age: " << example_type.age << endl;
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
Minory: тут выведет age: 1, ну я на шаг ближе к источнику проблемы.
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
вот так нормально:

ExampleType example_type = constructor<
 ExampleType,
 string,
 string,
 bool,
 int,
 ExampleTypeAddress,
 vector<ExampleTypePhoneNumber>
>("foo", "bar", false, 22, x, y);

а так нет (единица снова получается):

ExampleType example_type = curry<
 ExampleType, string, string, bool, int, ExampleTypeAddress, vector<ExampleTypePhoneNumber>
>(constructor<
 ExampleType, string, string, bool, int, ExampleTypeAddress, vector<ExampleTypePhoneNumber>
>)("foo")("bar")(false)(22)(x)(y);

хэлпер curry тут что-то делает не то...
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)

template <
typename R,
typename A,
typename B,
typename C,
typename D,
typename E,
typename F
>
inline function<function<function<function<function<function<
R(F)>(E)>(D)>(C)>(B)>(A)
> curry(
function<R(A, B, C, D, E, F)> fn
)
{
return [=](A a) { return [=](B b) { return [=](C c) { return [=](C d) {
 return [=](E e) { return [=](F f) { return fn(a, b, c, d, e, f); }; };
}; }; }; };
}
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
“C c”...“C d” БЯЛДЬ!
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
хочется отпиливать руки, которые запиливали имлпицитный coercing
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
лучше бы компилятор меня за это выпорол с пристрастием
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
C — это bool, следом идёт C d — это должен быть uint8_t, но для этого аргумента создаётся лямбда с bool, вызывая её с uint8_t значение превращается в единичку, а потом передаётся в нормальную функцию, которая coerce-ится обратно в uint8_t
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
O KURWA!
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
ну ладно, я когда C++ решил трогать руками сам на это подписался
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
надесюь в какой-нибудь C++30 завезут флаг, который выключает в модуле имплицитный кастинг
источник

A

Alex Ф-ф-фэils!🌠︙... in codingteam
https://github.com/boostorg/context/pull/183 - починил тут сборку буст контекста смаком на армах, надеюсь, примут.
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)
эта функция ещё в паре мест использовалась. но там оба аргумента были string, так что компилятору тоже всё норм было.
источник

A

Alex Ф-ф-фэils!🌠︙... in codingteam
Мб проще взять github.com/nlohmann/json?
источник

c

codingteam@cjr in codingteam
источник

c

codingteam@cjr in codingteam
(<*>).(<*>)

» [03:36:35] <тг> <@AlexFails> Мб проще взять github.com/nlohmann/json?
нет, смысл эксперимента не в нахождении готовой библиотеки для парсинга, в реализации хаскельных абстракций, и, используя их, в реализации парсеров.
источник

Dv

Dr. Friedrich von Ne... in codingteam
Ну, это прогресс.
источник