плюсах? Допустим, у меня и так есть что-то похожее, например, такой код
c++
int main()
{
Charmap chr{
"Courier New.ttf", 14, " .:-=+*#%@", {{0, 0, 0}, {255, 255, 255}}
};
Image chrm{chr.render()};
show(chrm.get());
chrm.write("chr.png");
Image img{"test.png"};
auto art = std::move(img.get()) |= ScaleFilter{0.5f, 0.5f}
| GrayscaleFilter{}
| MonochromeArtFilter{chr};
art.convertTo(art, CV_8U, 255); // Shit
img.assign(std::move(art));
show(img.get());
img.write("result.png");
}
стоит ли его превращать во что-то типа
c++
int main()
{
Charmap chr{
"Courier New.ttf", 14, " .:-=+*#%@", {{0, 0, 0}, {255, 255, 255}}
};
Image chrm{chr.render()};
show(chrm()));
chrm >> "chr.png";
Image img{"test.png"};
auto art = std::move(img()) |= ScaleFilter{0.5f, 0.5f}
| GrayscaleFilter{}
| MonochromeArtFilter{chr};
art.convertTo(art, CV_8U, 255); // Shit
std::move(art) >> img;
show(img());
img >> "result.png";
}
или я извращенец и творю полнейшую фигню?
Зависит от того, кто этот код будет видеть. Если кто-то кроме тебя - не делай так. Потому что это крайне усложняет чтение, а пока что профита я не вижу особого)
std::move(art) >> img; выглядит как попытка написать img = std::move(art); только извращенским способом
В ranges есть нечто подобное. При огромном количестве такого перегрузки операторов скорее превращаются в визуальный шум и становятся менее читабельными. Лучше от такого воздержаться.
Не видно повода для DSL
А где хоть что-то поменялось от верхнего куска кода к нижнему?
Обсуждают сегодня