Ioann_
Что есть плохо
Ioann_
Я сейчас простл вплотную уже не ядром занимаюсь, а ui фунциями и отрисовкой. Так что этот вопрос так и остается открытым - в идеале прыгать туда сюда не хорошо. Но в перерывах можно.
Anonymous
+-+
Ioann_
Да и у Страуструпа что то даже было. Но тут в любом случае, выделять надо и, сложно сказать привыкать не привыкать. Ждать долго :)
Anonymous
аллокаторы загибает? можно по-подробнее?
Vladislav
не верю
Tom
что за шутки такие?
usernameak
почему при выходе за пределы argv оно переходит к envp
Stanislav
https://blogs.msdn.microsoft.com/vcblog/2017/07/19/using-mingw-and-cygwin-with-visual-cpp-and-open-folder/
Stanislav
Nikita
Berkus
> cross-platform > hardcoded to POSIX > GCC-compatible only
ну например для майкрософта cross-platform это работающее на нескольких версиях винды - win 8, win 9, win 10 - это уже кросс-платформа
Billy
Там люди время тратят, статьи пишут, а вы тут стебетесь.
Dr. Friedrich
> cross-platform > hardcoded to POSIX > GCC-compatible only
Но чёт я не понял, откуда ты эти утверждения взял, если честно.
Dr. Friedrich
Какие-то хардкоды на POSIX, какие-то GCC... в статье написано обратное.
Nikita
Какие-то хардкоды на POSIX, какие-то GCC... в статье написано обратное.
The first is simply compiler compatibility.  We all love MSVC, but the reality is that some codebases are designed from the ground up under the expectation that they will be built with GCC
Dr. Friedrich
Так, и?
Dr. Friedrich
> hould work fine with other environments such as Cygwin and even other compilers like Clang.
Dr. Friedrich
Ну а откуда ты взял POSIX — я вообще не понял. Там просто (справедливо) отмечается, что открытые компиляторы обычно притаскивают с собой часть POSIX.
Dr. Friedrich
Про хардкод ничего не сказано.
Nikita
Why MinGW, разговоры про cross-platform, затем тут же Finally, some MinGW distributions such as MSYS2 allow you to build native POSIX software on Windows without porting the code to Win32.  This is accomplished by an emulation layer that allows native POSIX tools to run on Windows.  This same layer is what allows all your favorite POSIX build tools to run in the MinGW environment.
Dr. Friedrich
Ну да, это всё правда. А хардкод-то где? В коде mingw?
Nikita
Хардкод в коде crossplatform software, о котором речь в статье
Nikita
Что для него слой эмуляции нужен
Dr. Friedrich
Ну, тут уже ничего не поделаешь.
Matwey
Господа, а если у меня есть иерархия классов B: public A; C: public A И в классе A мне нужен статический член, но при этом я хочу чтобы для каждого конкретного класса B C этот статический член был свой собственный. Что делать? Изобретать template<class Deriv> class A B: public A<B> C: public A<C> и т.п.?
Anonymous
да, но зачем такое понадобилось?
Andrei
Да, но скорее всего это мисдизайн или типа того.
Александр
Нормальная ситуация, CRTP в действии
Dr. Friedrich
Это как?
Это как ты и написал. Когда дочерний класс передаёт самого себя в аргументы родителю, и родитель из него вызывает статические методы (например).
Billy
Это как?
На вики сртп хорошо описан.
melvin
никто с libfuse не работал?
Anonymous
Вдохновившись примером ниже, поинтересуюсь, почему стандартная библиотека не предоставляет перегрузки std::sort и прочих алгоритмов для стандартных контейнеров? ИМХО, это в разы было бы удобнее.
Anonymous
#include <boost/range/algorithm.hpp> #include <vector> #include <list> using namespace boost; int main() { auto r1 = "I am a range of char"; auto r2 = "me too!"; const char* r3[] = { r1, r2 }; // a range of const char* auto r4 = std::vector<std::string> { r1, r2 }; // two strings auto r5 = std::list<std::string> { begin(r3), end(r3) }; // idem std::sort(begin(r3), end(r3)); // sorts by pointer value boost::sort(r3); // sorts by pointer value std::sort(begin(r3), end(r3), std::less<std::string>()); // sorts the strings boost::sort(r3, std::less<std::string>()); // sorts the strings }
Anonymous
если у меня контейнер из функции берётся, то мне не надо сохранять его в переменную
Dr. Friedrich
Не нужно писать бесконечные begin, end
Anonymous
и это тоже
Dr. Friedrich
А ну-ка, что предлагает C++20 для этого?
Dr. Friedrich
И как тут помогает range?
Anonymous
А ну-ка, что предлагает C++20 для этого?
тот же вопрос, хотелось бы поглядеть, как это должно выглядить
Anonymous
но range ещё пилятся, не?
Dr. Friedrich
В 2017 так ещё нельзя? :(
Dr. Friedrich
В смысле, они перегрузку добавили или что?
Dr. Friedrich
Ок, Ъ
Anonymous
а как это объясняется с точки зрения стандарта? my_vec неявно приводится к некоторому типу "диапазона"?
Anonymous
ссылку можно?
Aidar
ну тоесть вместо шаблона концепты
Anonymous
мм, ладно, я просто ещё как-то думаю в C++11)
Dr. Friedrich
http://en.cppreference.com/w/cpp/experimental/ranges
Dr. Friedrich
Ок, там вообще всё суперски запилили. Будет отлично, если это включат в стандарт.
Aidar
они в с++17 не меньше старались
Aidar
)
Dr. Friedrich
А почему раньше не хотели сделать на SFINAE? Ну, типа, template<class T> void sort(T &&container) { std::sort(std::begin(container), std::end(container)); }
Dr. Friedrich
(хотя универсальную ссылку я туда зря бабахнул, потому что нафига что-то сортировать во временном объекте)
Aidar
тогда нужно 2 контейнера
Dr. Friedrich
Да.
Aidar
1 с владением 2 юбез владения
Aidar
и оберточка-функция которая возвращает это
Aidar
все сложно
Anonymous
template<class T> T&& sort(T &&container) { std::sort(std::begin(container), std::end(container)); return container; } херню творю?
Dr. Friedrich
Если оно создаёт новый контейнер — тогда пускай возвращает, да ещё и с [[nodiscard]]. А если модифицирует имеющийся — тогда пусть не возвращает. Это исключит возможность перепутать мутирующий и немутирующий варианты, даже если не знаешь заранее API.
Anonymous
ну передай туда временное ченить
временный объект разрушится до возврата?
Anonymous
ну, точнее, при нём
Anonymous
ладно, понял