@ProCxx

Страница 748 из 2477
Michael
03.04.2017
12:58:01
есть варнинг, что отмеченная инлайном функция не заинлайнена

специалисты скажите, почему - потому что возвращает сложный тип по значению? FORCEINLINE std::wstring GetFilename() const { return Filename; }

и если да, то почему КОНКРЕТНО

я жопой чую что это как-то связано с копированием...

Google
Michael
03.04.2017
13:01:31
(ах да, это только у ВС-компилятора, Кланг или успешно ее инлайнит, или не предупреждает об этом)

Some functions with copy constructed objects passed by value when -GX/EHs/EHa is on.

похоже на то

...да, это потому что влкючены эксепшны

Tony
03.04.2017
13:15:22
правильно ли я пишу запрос SQL?





Michael
03.04.2017
13:17:19
и давайте еще поиграем в угадайку



кланг не имеет этого варнинга

этот имплисит каст звучит очень странно и хотелось бы его найти

Cyber
03.04.2017
13:19:10
там же строка указана и файл

Michael
03.04.2017
13:19:16
это тимплейт

Google
Michael
03.04.2017
13:19:23
STL

Cyber
03.04.2017
13:19:42
поправь STL

Michael
03.04.2017
13:20:08
нет, я думаю, это у меня

просто вс любит искать ошибки не там

...нашел в каком файле...

у меня нет идей

это безумие

babysitter
03.04.2017
13:37:47
у меня нет идей
код не будешь показывать? место куда отсылает даблкликом тоже не показываешь, какого ответа ты ждешь?

Michael
03.04.2017
13:38:02
ты же умный. наверное

место, куда отсылает даблкликом, пожалуйста



Дед Пегас
03.04.2017
13:39:24
Всегда офигивал от такого оформления.

babysitter
03.04.2017
13:39:48
можно по приколу поставить брейкпоинт туда, встать на него и посмотреть колстек

Michael
03.04.2017
13:39:51
какого? это VAX

а, увы, брейк туда не поставить

std::transform(filter.begin(), filter.end(), filter.begin(), ::tolower);

Google
Michael
03.04.2017
13:40:56
спасибо за идею

боюсь, что это совсем не мой варининг

в смысле - удалось порставить со второй попытки

пути VS неисповедимы

Evgen
03.04.2017
13:43:48
?#quiz Чему будет равна переменная t после выполнения данного кода: int t = 0; t = t++; ▫️ (12) 0 27% ?? ▪️ (20) 1 46% ???? ▫️ (1) 2 2% ▪️ (10) Неопределено 23% ?? ▫️ А разве так можно? 0% ? 43 - всего голосов

babysitter
03.04.2017
13:43:51
toLower в глобаьном неймспейсе нашел?

Michael
03.04.2017
13:45:36
угу, он там и есть

в ctype.h

babysitter
03.04.2017
13:46:39
а, ну она вот инт и принимает, а строка широкая. дело закрыто

Sergey
03.04.2017
13:47:15
проверил в vs 2017. t == 1

babysitter
03.04.2017
13:47:37
проверил в vs 2017. t == 1
а гцц и кланг, 0. ub это

Александр
03.04.2017
13:48:01
Такие вещи не проверяют где попало, а сверяют со стандартом

Anatoly
03.04.2017
13:48:03
std::wstring s(L"test"); std::transform(s.begin(), s.end(), s.begin(), ::towupper);

Michael
03.04.2017
13:48:12
она инт возвращает, а он присваивается вчару

Anatoly
03.04.2017
13:48:44
toupper не предназначен для работы с wchar_t

Michael
03.04.2017
13:48:56
замена на ::towlower решила проблему, спасяп

toupper не предназначен для работы с wchar_t
для латиницы работает насколько я понимаю

для анси ренжа

где второй байт 0

Google
Michael
03.04.2017
13:49:48
поэтому и не заметил

удивительно но этот варнинг действительно вывел в серьезный баг

время потрачено с пользой ?

Anatoly
03.04.2017
13:52:19
для латиницы работает насколько я понимаю
ch - character to be converted. If the value of ch is not representable as unsigned char and does not equal EOF, the behavior is undefined. details: http://en.cppreference.com/w/cpp/string/byte/toupper

Michael
03.04.2017
13:52:58
андефайнд не значит что не работает

если прикинуть как работает алгоритм, то до тех пор пока второй байт ноль, все будет работать

Anatoly
03.04.2017
13:53:15
а я и не говорю, что не работает

я говорю, что может быть все что угодно

Michael
03.04.2017
13:53:29
угу, все понятно, спасибо

еще общий вопрос - если я возвращаю контейнер из функции и немедленно присваиваю - std::vector<> myFunc(); ... std::vector<> v = muFunc(); - следуюет ли ожидать, что это будет мув или не расчитывать на это и указывать мув эксплиситли?

Andrei
03.04.2017
14:14:14
Во-первых не будет ничего.

Потому что RVO

Во-вторых так как ты написал — это копи, а не мув.

Michael
03.04.2017
14:15:01
ожидать, что рво позаботиится об этом?

или не надеяться, если это критично?

Andrei
03.04.2017
14:15:17
андефайнд не значит что не работает
В плюсах undefined behavior — термин имеющий специальное значение.

Michael
03.04.2017
14:15:17
как это работает для меня?

Andrei
03.04.2017
14:15:24
Это значит, что НЕ РАБОТАЕТ

если тебе нужен мув

Google
Andrei
03.04.2017
14:15:50
напиши мув

если тебе нужна копия — напиши копию.

Tema
03.04.2017
14:16:08
std::vector<> v = std::move(muFunc());

Michael
03.04.2017
14:16:23
то есть, до тех пор пока у меня синтаксис копирования, я могу расчитывать только на копирование, и все остальное зависит от меня?

Andrei
03.04.2017
14:16:29
Да.

Michael
03.04.2017
14:16:32
принято

спасибо, сенсей

Anatoly
03.04.2017
14:16:40
если у тебя std::vector<> myFunc();

то при std::vector<> v = myFunc(); будет вызван перемещающий конструктор

vector(vector &&);

Michael
03.04.2017
14:17:20
вот это я и спрашивал

Michael
03.04.2017
14:17:32
он же генерируется дефолтом, как и остальные, верно?

Anatoly
03.04.2017
14:17:32
все будет в порядке

Andrei
03.04.2017
14:17:49
он же генерируется дефолтом, как и остальные, верно?
Нет, они определены просто для стандартных контейнеров.

Anatoly
03.04.2017
14:18:02
он генерируется дефолтом, если мебмеры имеют мув консруктор

Andrei
03.04.2017
14:18:02
Генерируются имплиситли они только для POD-ов

Michael
03.04.2017
14:18:03
это был волпрос вне контекста контейнеров уже

Andrei
03.04.2017
14:18:19
Или для структур ггде у всех полей move есть

Michael
03.04.2017
14:18:28
справедливо

и снова спасибо

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