Berkus
причем не из области статического анализа даже
Berkus
а простые человеческие ошибки тоже
Pavel
а у меня ничего
уверен что правильно поломан?)
Vsevolod
да, это из области, "а вот тут скорее всего накосячат"
Vsevolod
коверити тоже сплошные fp
Vsevolod
хотя там серьезный flow analysis
Alexander "SonnySlave"
коверити тоже сплошные fp
вот его на тырпрайзе не гонял
Alexander "SonnySlave"
но там бабки серьёзные для тырпрайза тоже
Berkus
да, это из области, "а вот тут скорее всего накосячат"
из области x = a * x + b * y; y = a * y + b * y; ^^^^^ wrong formula perhaps you wanted b * x? вот такие вещи находит, причем в формулах раз этак в пять длиннее этого примера
Vsevolod
нет, у меня, к счастью, никакого энтырпрайза на горизонте не рисуется
Vsevolod
ну вот нет у меня такого в проекте
Vsevolod
это так удивительно?
Крылатый
Што.
Vsevolod
и даже memset я ни разу не накосячил с использованием
Berkus
1. это легко просмотреть 2. этого больше НИ ОДИН тул анализа не делает
Vsevolod
да, потому что там учоные вещи делают те тулзы
Vsevolod
всякие tainted flows и иже с ними
Vsevolod
а это чистой воды эвристики
Vsevolod
не спорю, что полезные
Berkus
ничего, когда-нибудь и на твоей улице камаз с глупыми опечатками перевернется, вернемся к этому разговору лет через 15-20
Vsevolod
может, тогда и пивас будет по-человечески работать с опенсорсом
Vsevolod
больше статического анализа - лучше\
Олександр
А что насчет cppdepend?
Олександр
У него даже есть OSS лицензия.
Alexander "SonnySlave"
А что насчет cppdepend?
а это вроде не про статический анализ
Alexander "SonnySlave"
а про подсчёт всяких метрик по коду твоему. к тому же только под винду
Alexander "SonnySlave"
но OSS лицензия и вправду у них есть. Получить очень легко - просто пишется им на почту и высылают
Олександр
а про подсчёт всяких метрик по коду твоему. к тому же только под винду
1. Which operating systems are supported? CppDepend currently supports Microsoft Windows and Linux.
Vsevolod
с OSS лицензиями вообще все сложно
Vsevolod
вот на CLion мне ее не дали, потому что на сайте есть опция коммерческой поддержки
Vsevolod
впрочем, учитывая цену clion, это вообще не проблема
Alexander "SonnySlave"
1. Which operating systems are supported? CppDepend currently supports Microsoft Windows and Linux.
очень интересно. Хм... неужели я не заводил...
Vsevolod
а вот пивас мягко говоря недешев
Alexander "SonnySlave"
а вот пивас мягко говоря недешев
так у них цены нет на сайте
Alexander "SonnySlave"
к каждому индивидуальный подход 😊
Vsevolod
да, это известная тема, как срубить по максимму бабла
Max
Привет, если твое предложение в Сили то я прийду
Animal
/.
Dr. Friedrich
приходи!
Эмм, в три у маяка?
Влад
привет
Berkus
привет
ты же бот?
Влад
нет
Влад
я только зарегался
Berkus
эт хорошо, ща пошли боты модные просто - вваливаются в чат, пишут привет и молчат дальше
🦥Alex Fails
ок, надо тогда еще в @supapro зайти
🦥Alex Fails
спамнуть внезапно, вот их смысл жизни
Berkus
а в чем смысл?
прикидываются человеком, которого все заигнорят и ждут черного дня тихонько
Berkus
а потом да, резко постят какой-нибуь Б*****ЙН
Igor
да что ты так к билайну привязался-то :с
Vsevolod
БИЛАЙН
Vsevolod
ой, простите
Berkus
да что ты так к билайну привязался-то :с
по буквам не подходит твой билайн
Vsevolod
так вроде кончилась уже лихорадка, лопаты распродают
Alexander "SonnySlave"
так вроде кончилась уже лихорадка, лопаты распродают
что-тог не вижу этого по ценам на видеокарты
🐙 Antony
Мини идея: сейчас можно прострелить себе ногу, создав std::string_view а потом присвоив в него временную строку. Это известная проблема, которую нельзя обойти через string_view(string&& ) = delete, так как в этом случае ломается передача строк в функции void foo(string_view sw); foo(string{"Hello word!"}); // OK, right now
🐙 Antony
Так вот, по поводу идеи: можно уменьшить количество отстреленных пальцев, если запретить хотя бы присовение временных строк в string_view struct string; struct string_view { using charT = char; string_view() noexcept; string_view(const string_view&) noexcept = default; string_view& operator=(const string_view&) noexcept = default; string_view(const charT* str); string_view(const charT* str, unsigned len); //string_view& operator=(string const&); string_view& operator=(string&&) = delete; }; struct string { operator string_view() const noexcept; }; int main () { string_view sw = "Hello"; sw = "world"; //sw = string{}; // fails to cimpile. Hurray! string_view sw2{string{}}; string_view sw3 = string{}; sw = "qwe qwe"; sw = sw3; }
Aidar
а там чо operator string_view()?
🐙 Antony
а там чо operator string_view()?
Так в C++17 релизован string
Alexander "SonnySlave"
го писать пропосал)
Алекс, а почему ты на Го не пишешь?
Aidar
почему его не сдеоать operator string_view () &?
Alexander "SonnySlave"
язык просто для тебя 😊
🐙 Antony
ну ты это, бумагу написал?)
А если серьёзно - хочу обмусолить тему и убедиться что не ломается какой-либо валидный use case
🐙 Antony
почему его не сдеоать operator string_view () &?
тогда сломается void foo(string_view sw); foo(string{"Hello word!"}); // OK, right now
Alexander "SonnySlave"
А если серьёзно - хочу обмусолить тему и убедиться что не ломается какой-либо валидный use case
а что насчёт возврата константной ссылки на строку из функции?
Alexander "SonnySlave"
вроде как норм
🐙 Antony
вроде тоже
Aidar
<шутка про range-for и lvalue временную штуку>
🐙 Antony
🐙 Antony
<шутка про range-for и lvalue временную штуку>
не успел в этот раз доработать https://apolukhin.github.io/papers/safe_range_based_for.html В след раз попробуем починить
Anatoly
запретить вызов из не l-value?