Size: a a a

2021 February 08

D

Dmitriy in pro.cxx
Естественно, речь о максимальной оптимизации. Глупо рассуждать о таких вещах в Debug
источник

D

Danya in pro.cxx
Dmitriy
Интересно вот что...
Я точно знаю, что если функция принимает const string& и внутри не производит никаких копирований (пример - find у map), то при вызове от известной на этапе компиляции const char* компиль может убрать создание string
А прокатит ли такое с data(string_view), если содержимое последней также известно в compile-time?
И что с runtime - будет ли оптимизация, если содержимое const char*-строки на этапе компиляции не известно?
Даже если и не сможет, то скопировать указатель и size_t не думаю что сильно большая работа, которую надо оптимизировать кидаться
источник

D

Dmitriy in pro.cxx
Danya
Даже если и не сможет, то скопировать указатель и size_t не думаю что сильно большая работа, которую надо оптимизировать кидаться
Стоп, стоп. Какой указатель скопировать?
Речь же о const char* -> const std::string&
источник

D

Danya in pro.cxx
Dmitriy
Стоп, стоп. Какой указатель скопировать?
Речь же о const char* -> const std::string&
Речь о const char* -> string_view
источник

D

Dmitriy in pro.cxx
Dmitriy
Интересно вот что...
Я точно знаю, что если функция принимает const string& и внутри не производит никаких копирований (пример - find у map), то при вызове от известной на этапе компиляции const char* компиль может убрать создание string
А прокатит ли такое с data(string_view), если содержимое последней также известно в compile-time?
И что с runtime - будет ли оптимизация, если содержимое const char*-строки на этапе компиляции не известно?
.
источник

D

Dmitriy in pro.cxx
Danya
Речь о const char* -> string_view
Не прокатило чтение по диагонали))
источник

D

Danya in pro.cxx
> А прокатит ли такое с data(string_view), если содержимое последней также известно в compile-time?
источник

D

Dmitriy in pro.cxx
Danya
> А прокатит ли такое с data(string_view), если содержимое последней также известно в compile-time?
Имелась в виду передача data(string_view) в функцию, принимающую const string&
источник

D

Danya in pro.cxx
Dmitriy
Имелась в виду передача data(string_view) в функцию, принимающую const string&
Что такое data(string_view)?
источник

D

Dmitriy in pro.cxx
Danya
Что такое data(string_view)?
std::data (или вызов метода .data()) для получения const char* от вьюхи, которая пришла *откуда-то*
источник

D

Danya in pro.cxx
Dmitriy
std::data (или вызов метода .data()) для получения const char* от вьюхи, которая пришла *откуда-то*
А, не знал, что есть std::data
источник

m

mixa secret in pro.cxx
Danya
А, не знал, что есть std::data
И я не знал
источник

MK

Mikhail Kalugin in pro.cxx
Возможно, вопрос не сюда, но в общем есть у меня в коде такая штука HMODULE hPlugin = LoadLibrary(...) и дальше GetProcAdress(...). Оно работает, но, во первых это C, а все остальное C++, а во вторых есть подозрение что оно не кросс-платформенное (остальное написано на WTL, но переписываю на Qt). Есть какой-то более современный способ это сделать? Вроде была boost::dll, но чем-то не понравилась (хотя, это было пару лет назад)
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
Mikhail Kalugin
Возможно, вопрос не сюда, но в общем есть у меня в коде такая штука HMODULE hPlugin = LoadLibrary(...) и дальше GetProcAdress(...). Оно работает, но, во первых это C, а все остальное C++, а во вторых есть подозрение что оно не кросс-платформенное (остальное написано на WTL, но переписываю на Qt). Есть какой-то более современный способ это сделать? Вроде была boost::dll, но чем-то не понравилась (хотя, это было пару лет назад)
Это выньапи
источник

AB

Artöm Bakri Al-Sarmi... in pro.cxx
В бусте наверняка что-то есть
источник

MK

Mikhail Kalugin in pro.cxx
Ага. Он самый. Это часть проблемы.
источник

D

Dmitriy in pro.cxx
Mikhail Kalugin
Возможно, вопрос не сюда, но в общем есть у меня в коде такая штука HMODULE hPlugin = LoadLibrary(...) и дальше GetProcAdress(...). Оно работает, но, во первых это C, а все остальное C++, а во вторых есть подозрение что оно не кросс-платформенное (остальное написано на WTL, но переписываю на Qt). Есть какой-то более современный способ это сделать? Вроде была boost::dll, но чем-то не понравилась (хотя, это было пару лет назад)
Напиши RAII-обёртку в полсотни строк (проблему кроссплатформенности не решит)
источник

AT

Alexey Tkachenko in pro.cxx
Mikhail Kalugin
Возможно, вопрос не сюда, но в общем есть у меня в коде такая штука HMODULE hPlugin = LoadLibrary(...) и дальше GetProcAdress(...). Оно работает, но, во первых это C, а все остальное C++, а во вторых есть подозрение что оно не кросс-платформенное (остальное написано на WTL, но переписываю на Qt). Есть какой-то более современный способ это сделать? Вроде была boost::dll, но чем-то не понравилась (хотя, это было пару лет назад)
утащи платформозависимый код
LoadLibrary vs dlopen
GetProcAddress vs dlsym
источник

AT

Alexey Tkachenko in pro.cxx
ну и закрытие
источник

АК

Александр Караев... in pro.cxx
Mikhail Kalugin
Возможно, вопрос не сюда, но в общем есть у меня в коде такая штука HMODULE hPlugin = LoadLibrary(...) и дальше GetProcAdress(...). Оно работает, но, во первых это C, а все остальное C++, а во вторых есть подозрение что оно не кросс-платформенное (остальное написано на WTL, но переписываю на Qt). Есть какой-то более современный способ это сделать? Вроде была boost::dll, но чем-то не понравилась (хотя, это было пару лет назад)
boost::dll решает задачу целиком и полностью
источник