Size: a a a

2020 October 30

DP

Denis Paukaev in pro.cxx
в restrict вроде если нет модификации то можно алиасинг через разные указатели
источник

DP

Denis Paukaev in pro.cxx
т.е. не понятно чем только чтение мешает то
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Ну смотри, например буфер это указатель и в каком-то виде capacity + size например. Я для начала использую тот факт что буфер как структура через указатель не алиасится сам с собой.
Там
vector<char> buffer(200);
vector<char> * buffer2 = new (buffer.data()) vector<char>();
buffer2->swap(buffer);
источник

CD

Constantine Drozdov in pro.cxx
buffer2 совпадает с buffer2->data()
источник

CD

Constantine Drozdov in pro.cxx
Neargye
@antoshkka
http://josuttis.com/download/std/D2012R0_fix_rangebasedfor_201029.pdf
что думаешь о таком замечательном предложение?
я где-то подобное уже видел просто
я думаю, что ошибка не в range based for, а в возврате const& из std::vector<std::string>&&
источник

CD

Constantine Drozdov in pro.cxx
этот код должен не скомпилироваться
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
buffer2 совпадает с buffer2->data()
Но это ж не значит что в vector<byte> надо добавлять проверку на возможный aliasing с самим собой, так?
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Но это ж не значит что в vector<byte> надо добавлять проверку на возможный aliasing с самим собой, так?
Только потому, что он физически не может релоцировать сам себя
источник

AP

Antony Polukhin in pro.cxx
Neargye
@antoshkka
http://josuttis.com/download/std/D2012R0_fix_rangebasedfor_201029.pdf
что думаешь о таком замечательном предложение?
я где-то подобное уже видел просто
Я своё предложение не закидывал, т.к. есть проблемы:
1) return из тела цикла начинает неправильно работать
2) корутины в теле цикла ломаются

Надо автору написать, пусть решает сам проблемы
источник

AP

Antony Polukhin in pro.cxx
А, ну он сам пишет "With some special remarks such as what happens when using a return statement inside the lambda"
источник

NP

Nikita Provotorov in pro.cxx
ага там ещё про __func__ надо не забыть
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Проверь
А вот надо бы проверить кстати, в C11 это любой character type. Я думаю в c++ на самом деле тоже так.
источник

VS

Vlad Serebrennikov in pro.cxx
Dmitry Sokolov
А вот надо бы проверить кстати, в C11 это любой character type. Я думаю в c++ на самом деле тоже так.
http://eel.is/c++draft/basic.lval#11.3
вас этот пункт интересует, наверное
источник

АР

Андрей Руссков... in pro.cxx
можно было бы написать что лайфтайм выражения в range-based-for по принципу работы аналогичен такому у аргументов функций
источник

АР

Андрей Руссков... in pro.cxx
типа промежуточные объекты живут пока цикл не грохнется
источник

DS

Dmitry Sokolov in pro.cxx
Vlad Serebrennikov
http://eel.is/c++draft/basic.lval#11.3
вас этот пункт интересует, наверное
Я про то как оно на практике, насколько помню signed char тоже aliased.
источник

АР

Андрей Руссков... in pro.cxx
в простейшем виде это вообще был бы
[&](auto &&expr) {
   auto g = begin(expr);
   auto e = end(expr);
   for (auto it = b; it != e; ++it) {
       auto& var = *it;
       ....
   }
}();
источник

АР

Андрей Руссков... in pro.cxx
только это добавит стекфрейм
источник

V

Vyacheslav in pro.cxx
Андрей Руссков
в простейшем виде это вообще был бы
[&](auto &&expr) {
   auto g = begin(expr);
   auto e = end(expr);
   for (auto it = b; it != e; ++it) {
       auto& var = *it;
       ....
   }
}();
begin можно по rvalue ещё
источник

АР

Андрей Руссков... in pro.cxx
ну да, там using std::begin, std::end еще и всякое такое
источник