@ProCxx

Страница 174 из 2477
Aldar
15.05.2016
12:08:54
нет, если ты хочешь пользовательский тип данных в вектор положить

Aldar
15.05.2016
12:09:18
да, неверно написал, ограничения на тот тип данных, который хочешь хранить в векторе

Andrei
15.05.2016
12:09:33
Зависит от того, что ты вызываешь.

Google
Aldar
15.05.2016
12:09:48
тот же пуш бек

Andrei
15.05.2016
12:09:50
Вообще никаких.

Сам по себе вектор никаких.

Aldar
15.05.2016
12:10:20
а что будет если конструктор перемещения выбросит исключение?

Andrei
15.05.2016
12:10:50
Ну выбросит и выбросит.

std::terminate

если он был помечен как noexcept

Aldar
15.05.2016
12:12:04
ну вот, значит он должен быть помечен как noexcept

Anatoly
15.05.2016
12:12:06
Я, кажется, понял вопрос. Можно ли будет этим самым вектором пользоваться после исключения дальше.

Aldar
15.05.2016
12:12:27
http://stackoverflow.com/questions/8001823/how-to-enforce-move-semantics-when-a-vector-grows

Andrei
15.05.2016
12:12:32
от типа T для вектора не требуется ничего, кроме полного определения и публичного деструктора

для пушбека кот констрефа требуется CopyInsertable

от rvalue MoveInsertable

Google
Andrei
15.05.2016
12:15:17
внутри вызывается std::move_if_noexcept

который возвращает либо констреф если нет мувконструктора или он есть но бросает, либо рвэлью реф

Aldar
15.05.2016
12:16:07
то есть если какой нить копи конструктор кинет исключение, то гарантируется базовая exception safety

то есть вектор будет в каком то непонятном состоянии, что пользоваться им дальше не имеет смысла

Andrei
15.05.2016
12:16:39
нет

для пушбека не базовая

для пушбека вообще ничего не будет

Aldar
15.05.2016
12:17:05
ну смотри, если при пушбеке будет реаллокация

Andrei
15.05.2016
12:17:06
там сильная гарантия

Aldar
15.05.2016
12:17:18
то есть выделится кусок памяти в 2 раза больше

потом начнётся вызов либо move либо копи конструктора, смотря что есть

для каждого объекта

и если в этот момент выкинется исключение

Andrei
15.05.2016
12:18:13
Еще раз, пушбек имеет строгую гарантию, всё будет ок.

Если выкинется исключение, то ничего страшного не произойдет.

Aldar
15.05.2016
12:18:34
как будет ок?

Andrei
15.05.2016
12:18:43
А почему не ок-то?

Aldar
15.05.2016
12:19:14
потому что часть объектов переместится к примеру, а часть нет

и что с этим хозяйством делать?

Andrei
15.05.2016
12:19:46
Такого вообще не может быть.

Google
Andrei
15.05.2016
12:19:52
Скопированы может быть?

Aldar
15.05.2016
12:20:32
такого не может быть, потому что вектор требует для move конструктора noexcept

?

Andrei
15.05.2016
12:20:36
Да.

Если move конструктор выкинет исключение это будет std::terminate

завершение программы

Aldar
15.05.2016
12:21:29
а если будет вызван конструктор копирования, то что произойдёт, часть объектов мы скопировали, а часть нет

Andrei
15.05.2016
12:21:43
Если там будет копирование, то ничего страшного, у того, что успело накопироваться будет вызваны опять же небросающие деструкторы.

И память возвращена системе

Aldar
15.05.2016
12:22:11
и будет кинуто снова исключение?

Andrei
15.05.2016
12:22:15
и исключение дальше пробросится пользователю

конечно

Andrei
15.05.2016
12:22:29
pushback это трайкетч

внутри catch(...)

revert; throw;

Aldar
15.05.2016
12:23:10
хм, сейчас понятнее стало

в общем требование noexcept для move constructor только

Andrei
15.05.2016
12:24:36
в пушбеке, да.

еще есть другие функции

emplace_back там

Google
Andrei
15.05.2016
12:25:00
resize

Сергей
15.05.2016
14:08:29
Поясните нубу

while (count -= this->FREQ >= 0)

в this->FREQ = 5

а отнимает за раз 1

Alex Фэils?︙
15.05.2016
14:09:37
потому что приоритет выше

у >=

Сергей
15.05.2016
14:09:46
Ну я понимаю

Но почему оно делает -- тогда

Admin
ERROR: S client not available

Alex Фэils?︙
15.05.2016
14:09:56
надо сделать while ( (count -= this->FREQ) >= 0)

Сергей
15.05.2016
14:10:00
Дада

Alex Фэils?︙
15.05.2016
14:10:10
потому что без скобок сначала >= сработает

он тебе 1 вернет

Сергей
15.05.2016
14:10:28
лол

спс

KrivdaTheTriewe
15.05.2016
14:12:51
while (count -= this->FREQ >= 0)
зачем вы так делаете7

это же не читабельно

Alex Фэils?︙
15.05.2016
14:13:02
не знаю

я так не делаю)

Google
Alex Фэils?︙
15.05.2016
19:45:43
кстати, напомните, что для html-гуя хорошо делать?

какая там клевая либа была

а, вспомнил. HTMLayout

Ned Ogl
15.05.2016
20:45:20
как по умолчанию линкует GCC?

Penter
15.05.2016
20:45:40
как по умолчанию линкует GCC?
Все цпп, что ты указываешь

Ned Ogl
15.05.2016
20:45:55
статически или динамически?

Penter
15.05.2016
20:46:15
статически или динамически?
Смотря, как укажешь.

Ned Ogl
15.05.2016
20:46:22
ПО УМОЛЧАНИЮ!

Penter
15.05.2016
20:46:23
По -l так динамика ж

Динамика по дефолту

Ned Ogl
15.05.2016
20:46:34
gcc main.c -o main

то есть и STL линкуются динамически?

Ned Ogl
15.05.2016
20:48:17
кхм

а если у меня есть статиклиба, как она линкуется?

то есть просто cpp и h к нему, после того как cpp превратили в о?

Ned Ogl
15.05.2016
20:51:04
Penter
15.05.2016
20:51:22
Что?...
Ууу ебааать

Заголовки тупо копируются препроцессором

Полностью

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