@ProCxx

Страница 2332 из 2477
Google
Ilia
07.09.2018
05:01:35
Тогда бы при компиляции из сорцов была бы ошибка, которую, сразу же бы и зметили
Нет, если функция реально ни кем не используется, ошибки не будет

сумма -I и инклюда больше
Ну блин сделай в корне диска символическую ссылку на корень твоего проекта, или списка библиотек, и путь сократится

Константин Иванович
07.09.2018
05:11:58
Александр
07.09.2018
05:22:46
У всех утро начинается по-своему, но только у @MasterZiv оно начинается с ответов на все вопросы в этом чате

Daniel
07.09.2018
05:33:16
Ну, а на кой чат то

Конечно же учить людей вуду магии

Ioann V
07.09.2018
05:41:54
Совсем не истина. Читай дискуссию.

Это просто разные функции, перегрузка.

Не обязан быть

Объявление функции может не быть в заголовке, оно может возникнуть нигде нигде не быть. Определение является также и объявлением

Google
Ioann V
07.09.2018
05:41:55
Нет, если функция реально ни кем не используется, ошибки не будет

Ilia
07.09.2018
06:42:08
так умеет или сделай?
Умеренно длинные пути умеет. Потом, тут есть ещё терминологическая проблема, 'длинные пути' это в win с 95го пути, которые позволяют пробелы и имя файла больше 8 символов. Так что я как увидел твое сообщение, именно по это и ответил, потому что только с такими путями оно и работает

Egor
07.09.2018
06:42:30
32к пути, как их назовём?

Ilia
07.09.2018
06:42:42
Да фиг знает

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

Супер длинные...

Ну, укороти , и все

Max
07.09.2018
07:01:44
Qt чем не устраивает?
Хочу мало того, что без предобработки, но ещё и header-only

Andrey
07.09.2018
07:02:09
Никто не в курсе, нету в планах сделать такой код корректным? for (auto &&x : f().g()) { //... }
Из последних "серьезных" proposals на эту тему: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0936r0.pdf

Anatoly
07.09.2018
07:04:22
Max
07.09.2018
07:15:18
32к пути, как их назовём?
так в виндах же 260 максимум? Вместе с полным путём.

https://www.boost.org/doc/libs/1_68_0/doc/html/signals2.html
да, уже посмотрел) Раньше почему-то был уверен, что оно не умеет в мультитрединг.

Egor
07.09.2018
07:17:52
так в виндах же 260 максимум? Вместе с полным путём.
The Windows API has many functions that also have Unicode versions to permit an extended-length path for a maximum total path length of 32,767 characters. To specify an extended-length path, use the "\\?\" prefix. For example, "\\?\D:\very long path". https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file

Max
07.09.2018
07:19:33
The Windows API has many functions that also have Unicode versions to permit an extended-length path for a maximum total path length of 32,767 characters. To specify an extended-length path, use the "\\?\" prefix. For example, "\\?\D:\very long path". https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file
И что означает это "many functions"? Параграф выше утверждает, что "In the Windows API (with some exceptions discussed in the following paragraphs), the maximum length for a path is MAX_PATH, which is defined as 260 characters".

Egor
07.09.2018
07:20:04
все с W суффиксом

Max
07.09.2018
07:22:45
все с W суффиксом
ну а ты компилятору пути подсовываешь в виде "\\?\UNC\..." ?

Egor
07.09.2018
07:23:38
перепроверяю

Max
07.09.2018
07:26:59
перепроверяю
да сделай лучше, как Илья сказал. Тебе ж чётко в документации сказано, " maximum length for a path is MAX_PATH". Закладываться на то, что там есть какие-то функции, которые умеют больше — это всё от лукавого.

Egor
07.09.2018
07:32:11
перепроверил, не работает всё-таки, а урезать - это я сразу сделал, только пути теперь хешами стали нечитаемыми

Google
Ilia
07.09.2018
07:42:39
Так это ж другое, это "широкие" а не "длинные" пути.

Max
07.09.2018
07:43:38
и если уж про документацию, то оттуда же: Starting in Windows 10, version 1607, MAX_PATH limitations have been removed from common Win32 file and directory functions.
Отлично. А ты уверен, что все, как и ты, выставляют флаг HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled ?

Egor
07.09.2018
07:44:19
это другой вопрос

Так это ж другое, это "широкие" а не "длинные" пути.
в доке написано лонг - A registry key allows you to enable or disable the new long path behavior.

Max
07.09.2018
07:45:50
Или нет? В общем, не суть. Не прибавляй проблем на ровном месте тем, кто будет сопровождать твой проект.

Egor
07.09.2018
07:47:22
далеко от темы

Max
07.09.2018
07:50:05
далеко от темы
ты удивишься насколько близко.

Ilia
07.09.2018
08:24:06
Здравствуйте, кто может подсказать как искусственно создать состояние гонки(Race condition) с помощью OpenMP? Хочу увидеть разницу в: 1. последовательности данных 2. также желательно увидеть разницу в скорости выполнения Пока разницы никакой не вижу..Объясните дураку, что я делаю не так.. Мой код привожу ниже: https://gist.github.com/88c0c4ea40fab4265261fc6afb1a96bc.git

Aidar
07.09.2018
08:41:16
Дык рейскондишн это уб

Уб не значит что работать не будет

И запусти пару миллионов раз если уверен что оно там есть

Kitsu
07.09.2018
08:51:44
а еще лучше с каким-нибудь tsan-ом, тогда может повезти и на первый раз

Culminate
07.09.2018
08:55:06
Приветствую. Есть проблема. Вызывается make -j 5 внутри этого мейка есть еще один make. Как передать флаг -j 5 мейку внутри?

Ilia
07.09.2018
08:58:01
Ну.. не знаю...

Но ты можешь сначало собрать руками внутренний make с -j 5, а потом -- внешний. Всё, что надо -- написать простой shell script

Евгений
07.09.2018
09:36:13
сегодня официально день, когда мне пришлось впилить макрос для оптимизации логирования

как теперь жить?

Google
Ilia
07.09.2018
10:12:17
Мб можно было шаблончиками? Что за случай?
Ну, логирование как раз то самое, когда макросы особо нужны.

... и assert-ы.

Евгений
07.09.2018
10:19:02
Мб можно было шаблончиками? Что за случай?
случай, когда логгер работает примерно так: logger.AddDebug() << L"Message"; Появилась надобность при выполнении определять флаг, надо ли логировать этот запрос, и в зависимости от него либо лоигровать, либо нет. Изначально это было реализовано через: logger.AddDebugIf( expression ) << L"Message"; но, как понимаете, это замедляет работу.

Мб можно было шаблончиками? Что за случай?
а шаблшончиками как? Я бы посмотрел в сторону более аккуратных решений

Stanislav
07.09.2018
10:20:29
Ну, логирование как раз то самое, когда макросы особо нужны.
да не особо то и нужны если не надо трекать source location

Евгений
07.09.2018
10:21:16
Не любишь упарываться шаблонами?
даже не знаю, не приходилось прост

Stanislav
07.09.2018
10:21:30
может лучше взять spdlog? :D

Yarique
07.09.2018
10:21:44
Печалька, я C++17 выбил и забыл про проблемы старых стандартов

С++11?
std::enable_if

Евгений
07.09.2018
10:22:43
может лучше взять spdlog? :D
не, выбор логгера за мной не стоит.

Stanislav
07.09.2018
10:23:00
не, выбор логгера за мной не стоит.
ну зато можно поглядеть как там сделано)

Евгений
07.09.2018
10:23:33
Печалька, я C++17 выбил и забыл про проблемы старых стандартов
у нас разработка over1000 человек, и уже легаси с более 10-летним стажем) Уже хорошо, что ушли с Mingw (вообще убрали сборки на винде, ура), и перескочили на С++11

Yarique
07.09.2018
10:25:42
у нас разработка over1000 человек, и уже легаси с более 10-летним стажем) Уже хорошо, что ушли с Mingw (вообще убрали сборки на винде, ура), и перескочили на С++11
У нас легаси 9 летний, я сам скрипты для сборки gcc-8.2.0 писал и для сборки внешних зависимостей последним

Короче, надо заставлять всех переходить на последний стандарт

Евгений
07.09.2018
10:26:54
ну зато можно поглядеть как там сделано)
мб стоит. Это позволит мне фигачить конструкции вида: BlaBla ... expression... () << L"Message"; так, чтобы если expression - false, тогда не тратились ресурсы на operator<<?

с макросом у меня просто вся строка уходит под if( expression ) со всеми вытекующими

Google
Yarique
07.09.2018
10:34:27
Скорее всего, можно реализовать шаблончиками на C++11, если для тебя макросы - это боль большая?

Arseny
07.09.2018
10:41:00
мб стоит. Это позволит мне фигачить конструкции вида: BlaBla ... expression... () << L"Message"; так, чтобы если expression - false, тогда не тратились ресурсы на operator<<?
Частично поможет если условие compile time. Но сами аргументы, передаваемые для логирования все равно будут вычисляться

Arseny
07.09.2018
10:43:20
Нормальный лог без дефайнов не написать.

Евгений
07.09.2018
10:44:37
ну тогда думаю макросы которые юзаются как: LOG_ADD_IF( expression ) << L"Message"; вполне сносны.

Alexander
07.09.2018
10:47:30
мб стоит. Это позволит мне фигачить конструкции вида: BlaBla ... expression... () << L"Message"; так, чтобы если expression - false, тогда не тратились ресурсы на operator<<?
сделай так что бы у тебя экспрешен возвращал нормальный стрим если тру и стрим который ни чего не делает в случае false

Евгений
07.09.2018
10:48:09
сделай так что бы у тебя экспрешен возвращал нормальный стрим если тру и стрим который ни чего не делает в случае false
так и было. Это работает медленно, особенно, если впиливаешь в строку всякие boost::lexical_cast

тут идея такая, что если в метод прислали один элемент - его работа логируется, если много - то вырубаем лог во имя скорости

Alexander
07.09.2018
10:51:32
так и было. Это работает медленно, особенно, если впиливаешь в строку всякие boost::lexical_cast
может проблема тогда в лексикал кастах. а не в логировании?

удали касты и все будет хорошо

Евгений
07.09.2018
10:52:07
может проблема тогда в лексикал кастах. а не в логировании?
проблема в том, чтобы в коде строки с логированием занимали минимум визуального пространства, для повышения читаемости.

не только касты там могут быть, а например, те же obj.ToString()

они нужны, когда нужно логирование. И их надо поместить под if(), дабы они не жрали ресурсы, когла условие ложно.

Страница 2332 из 2477