Berkus
нет
Berkus
там же чуть ли не const char * const * должно быть
по стандарту (цитата) int main(int ac, char** av)
Constantine
вообще там шикарные гарантии, конечно argv[0] is the pointer to the initial character of a null-terminated multibyte string that represents the name used to invoke the program itself (or an empty string "" if this is not supported by the execution environment). The strings are modifiable, although these modifications do not propagate back to the execution environment: they can be used, for example, with std::strtok. The size of the array pointed to by argv is at least argc+1, and the last element, argv[argc], is guaranteed to be a null pointer.
Constantine
ну, да, можно менять и в хвост и в гриву.
ну имхо это легаси все-таки
Berkus
ну это имхо легаСи
нет, это стандартная функция main
Berkus
Constantine
нет, это стандартная функция main
ну если стандартная, то копируй все и не забудь nullptr последним параметром)
Anatoly
да ну их в зад, так пусть хавают
в принципе, можно замарочиться: int foo(int argc, char*argv[]) { for(int i = 0; i < argc; ++i) { std::cout << "[" << argv[i] << "]" << endl; } return 0; } int call_foo(std::string s) { size_t offset[3] = {}; s += '\0'; offset[1] = s.size(); s += "abc"; s += '\0'; offset[2] = s.size(); s += "def"; s += '\0'; char* head = s.data(); char* argv[] = {head, head + offset[1], head + offset[2], nullptr}; return foo(3, argv); } int main() { call_foo("test"); } и спать спокойно :)
Berkus
можно и так да, только у меня как видишь один параметр приходит в аргументе типа std::string
Matwey
Господа
Matwey
А как при делегировании конструкторов
Matwey
Сделать себе временную переменную?
Matwey
Очень сильно хочется
Constantine
Писать в один оператор, очевидно
Constantine
Без примера ну никак на самом деле
Matwey
типа (int x=3,x) ?
Anatoly
но он же const char*
data() не const char*
Berkus
хм, а что мне мешает этот data() сунуть просто в мой массив тогда
Berkus
только то что строки константные?
Anatoly
только то что строки константные?
ну, да, у меня только к ним и были претензии изначально
Berkus
но если они не модифицируются а только парсятся (в чем я в целом уверен), то это ненужный огород получается
Constantine
я, например, когда вижу каст за ** очень сильно переживать начинаю
Berkus
я тоже
Aidar
Очень сильно хочется
юзай функции для инициализации
Aidar
:x{defaultxvalue()}
Matwey
так я уже придумал
Дмитрий ⬡
У меня была беда с этой сигнатурой main когда надо было exec(2) вызвать, пришлось const_cast впихивать.
Дмитрий ⬡
(exec тоже неконстантные строчки принимает, без понятия зачем)
Aidar
так я уже придумал
:x{[]{ int a = 7; return a; }()}
Matwey
а так еще нет, спасибо :)
Александр
офигеть - вместо enum class можно юзать enum struct
Berkus
ну это ж одно и то же
Александр
ни разу в коде не видел второго
Berkus
я бы еще enum enum хотел увидеть, для настоящих полноценных sum types
Александр
:D
Berkus
enum class T : struct std::map::_M_node вон он, венец
Oleg
Ку
FailsBot
http://en.cppreference.com/w/c/io/fwscanf
FailsBot
http://en.cppreference.com/w/cpp/header/functional
FailsBot
http://en.cppreference.com/w/cpp/numeric/complex/operator_arith
Berkus
вот и бот проснулся
Oleg
сорян, это я чу-т случайно его потыкал
Oleg
а, он не доволен std::list
им никто не доволен
Square
а ну выложи в опунсурсь, кек)
у меня они на костылях. есть более годные вроде
Oleg
std::list не нужен вообще никогда
нужен, но очень редко для продуктовых задач
Square
у меня они на костылях. есть более годные вроде
а не. такое ж говно как у меня гуглится :D
Square
https://github.com/nanomsg/cppnanomsg/blob/master/nn.hpp
Berkus
а в eastl есть какой-то list?
Oleg
https://baptiste-wicht.com/posts/2017/05/cpp-containers-benchmark-vector-list-deque-plf-colony.html
Square
ох епт. я думал мы в админке болтаем - аж бутриком подавился
Berkus
пхх
Berkus
а почему?
он в целом бессмысленный
Square
ну у меня ваще оно наследием тянется как то. еще из самописного делфи-листа в одном проекте.
Square
там просто юзеры на своей стороне часто дергали api удаления атрибутов, которые в листе. и чтоб реально не удалять ничо - есть список двусвязный
🦥Alex Fails
которая web_structure
блядь. эти пидоры год назад заебали спамить этой конференцией! Одни из первых спамеров, блядь! *пичот*
🦥Alex Fails
+
🦥Alex Fails
это бородатый киевлянин который?
да хз. приходили юзернеймы, говорили про этот чат, и все
Ildar
жёстко
Igor
std::list не нужен вообще никогда
вот прям вообще-вообще никогда, даже если постоянно добавлять/удалять в середину?
Aleksander
https://baptiste-wicht.com/posts/2017/05/cpp-containers-benchmark-vector-list-deque-plf-colony.html
ээ, а почему это лист так сильно тормозит? Из-за хождения в кучу для каждой операции?
🐙 Antony
ээ, а почему это лист так сильно тормозит? Из-за хождения в кучу для каждой операции?
Хождения в кучу, очень неэффективная работа с кешом, CPU тяжело делать out of order execution, оверхед на хранение двух указателей
Igor
просто как раз пару недель назад была дискуссия с коллегой на тему его уместности, так и не пришли к консенсусу мои аргументы были за маленький (в 80% случаев) размер контейнера и отсутствие динамических аллокаций - вектор просто ляжет в кэш и будет там сдвигаться минимально его наоборот - кэша не очень много, контейнер может действитльно разрастаться, а лишнюю ходьбу по куче компенсирует сохранение итератора
Anatoly
покажешь?)
покажу, надо найти
Aleksander
т.е. на писюке проще и дешевле сходить в кучу за большим вектором, чем выделить в той же куче новый элемент для list-а ?