Ioann_
Что есть плохо
Ioann_
Я сейчас простл вплотную уже не ядром занимаюсь, а ui фунциями и отрисовкой. Так что этот вопрос так и остается открытым - в идеале прыгать туда сюда не хорошо. Но в перерывах можно.
Ioann_
Anonymous
+-+
Ioann_
Да и у Страуструпа что то даже было. Но тут в любом случае, выделять надо и, сложно сказать привыкать не привыкать. Ждать долго :)
Anonymous
аллокаторы загибает? можно по-подробнее?
Vladislav
не верю
Tom
что за шутки такие?
usernameak
почему при выходе за пределы argv оно переходит к envp
Anonymous
Stanislav
https://blogs.msdn.microsoft.com/vcblog/2017/07/19/using-mingw-and-cygwin-with-visual-cpp-and-open-folder/
Stanislav
Nikita
Dr. Friedrich
Billy
Там люди время тратят, статьи пишут, а вы тут стебетесь.
Dr. Friedrich
Dr. Friedrich
Какие-то хардкоды на POSIX, какие-то 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
Ну, тут уже ничего не поделаешь.
Berkus
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 в действии
Berkus
Matwey
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
Anonymous
и это тоже
Dr. Friedrich
А ну-ка, что предлагает C++20 для этого?
Dr. Friedrich
И как тут помогает range?
Anonymous
но range ещё пилятся, не?
Dr. Friedrich
В 2017 так ещё нельзя? :(
Dr. Friedrich
В смысле, они перегрузку добавили или что?
Aidar
Dr. Friedrich
Ок, Ъ
Anonymous
а как это объясняется с точки зрения стандарта? my_vec неявно приводится к некоторому типу "диапазона"?
Anonymous
ссылку можно?
Aidar
Aidar
ну тоесть вместо шаблона концепты
Anonymous
мм, ладно, я просто ещё как-то думаю в C++11)
Aidar
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
(хотя универсальную ссылку я туда зря бабахнул, потому что нафига что-то сортировать во временном объекте)
Anonymous
Aidar
Aidar
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.
Aidar
Anonymous
ну, точнее, при нём
Anonymous
ладно, понял
Aidar