Size: a a a

2021 March 24

S

Sergey in pro.cxx
Побитый Кирпич
Что, и в дебаге нет оверхеда?
В дебаге есть.
источник

ПК

Побитый Кирпич... in pro.cxx
Sergey
В дебаге есть.
С поддержкой языковой весь оверхед уйдёт на этап компиляции. Вот и профит.
источник

IL

Ignat Loskutov in pro.cxx
Так дебажить в проде просто нужно.
источник

SH

Serhii Herashchenko in pro.cxx
не уверен, вопрос ли это для супа, так что спрошу тут

почему this - rvalue?
источник

D

Danya in pro.cxx
Serhii Herashchenko
не уверен, вопрос ли это для супа, так что спрошу тут

почему this - rvalue?
А каким должно быть?
источник

m

magras in pro.cxx
Можно в начале все разделители свести к одному и потом применять один сплит: https://godbolt.org/z/M1sc1Tzvv
Но вообще я тоже считаю что правильное решение split_when. Если его еще нет в стандарте, надо написать свой.
источник

D

Danya in pro.cxx
Danya
А каким должно быть?
В моей голове это по сути как литерал любой
источник

PZ

Pavel Zhigulin in pro.cxx
Serhii Herashchenko
не уверен, вопрос ли это для супа, так что спрошу тут

почему this - rvalue?
Это интересный вопрос. Помнится где-то читал, что в стародревних версиях Borland C++ this не был таковым.
источник

PZ

Pavel Zhigulin in pro.cxx
Но это порождало много боли и порешили, что оно не надо никому.
источник

PZ

Pavel Zhigulin in pro.cxx
magras
Можно в начале все разделители свести к одному и потом применять один сплит: https://godbolt.org/z/M1sc1Tzvv
Но вообще я тоже считаю что правильное решение split_when. Если его еще нет в стандарте, надо написать свой.
А мне вот кажется, что код Антона должен работать "из коробки", потому что иначе - это всё теряет какой-либо смысл. Как писать эти цепочки трансформаций, если надо помнить, что в какой-то момент оно сломается с адовой ошибкой компиляции?
источник

ПК

Побитый Кирпич... in pro.cxx
Danya
В моей голове это по сути как литерал любой
В другой голове это:
<опционально const> T* const this = <первый скрытый параметр метода>;
источник

m

magras in pro.cxx
Pavel Zhigulin
А мне вот кажется, что код Антона должен работать "из коробки", потому что иначе - это всё теряет какой-либо смысл. Как писать эти цепочки трансформаций, если надо помнить, что в какой-то момент оно сломается с адовой ошибкой компиляции?
С этим я согласен.
Но три сплита - это три прохода по строке, то есть изначальный пример еще и неэффективен.
источник

PZ

Pavel Zhigulin in pro.cxx
magras
С этим я согласен.
Но три сплита - это три прохода по строке, то есть изначальный пример еще и неэффективен.
Это не имеет значения :) Я хочу иметь право писать гавно :)
источник

АК

Александр Караев... in pro.cxx
Pavel Zhigulin
Это не имеет значения :) Я хочу иметь право писать гавно :)
* табличка с надписью "запрещено" *
источник

PZ

Pavel Zhigulin in pro.cxx
Мне кто-нибудь объяснит, как std::ranges::views::split (божечки....) конструируется из одного символа? Я вот не вижу такого конструктора в документации
https://en.cppreference.com/w/cpp/ranges/split_view/split_view
источник

АК

Александр Караев... in pro.cxx
Pavel Zhigulin
Мне кто-нибудь объяснит, как std::ranges::views::split (божечки....) конструируется из одного символа? Я вот не вижу такого конструктора в документации
https://en.cppreference.com/w/cpp/ranges/split_view/split_view
Вторая перегрузка. Либо вызывается как split_view(range, delim), либо range | split(delim)
(split_view != split)
источник

PZ

Pavel Zhigulin in pro.cxx
Александр Караев
Вторая перегрузка. Либо вызывается как split_view(range, delim), либо range | split(delim)
(split_view != split)
https://en.cppreference.com/w/cpp/ranges/split_view

The expression views::split(E,F) is expression-equivalent to split_view{E,F}.
источник

IZ

Ilia Zviagin in pro.cxx
Sergey
Кто нибудь знает, ожидается ли в пост-С++20 стандартах сильная типизация в духе
using Foo = int;
using Bar = int;
Foo foo = 0;
Bar bar = foo; // Error: could not cast Foo to const Bar& in Bar::Bar(const Bar&)

?
Так уже сейчас есть, только вместо using надо enum class
источник

PZ

Pavel Zhigulin in pro.cxx
Александр Караев
Вторая перегрузка. Либо вызывается как split_view(range, delim), либо range | split(delim)
(split_view != split)
Я не вижу этого утверждения в документации. Может куда-то не туда смотрю.
источник

АК

Александр Караев... in pro.cxx
Pavel Zhigulin
Я не вижу этого утверждения в документации. Может куда-то не туда смотрю.
В документации я тоже найти не могу, но этот вопрос можно задать для любого view. Они все обладают свойством частичного применения с дальнейшим использованием в виде range | some_view(...)
источник