@ProCxx

Страница 1095 из 2477
Ioann V
15.07.2017
21:54:42
Не знаю, самое простое и верное решение, это действительно следовать стандарту и никак иначе

Constantine
15.07.2017
21:55:00
так вот, мне совершенно не очевидно, как компилятор вернет значение типа T через регистр

Constantine
15.07.2017
21:55:18
нет ни одного доказательства, что эта программа с const_cast является ill formed

Google
Constantine
15.07.2017
21:55:21
пока

кроме мнения рандомных людей со стек оверфлоу

Constantine
15.07.2017
21:56:03
Ioann V
15.07.2017
21:56:14
Я с телефона, поищу и как время найду и как за нетбуком буду :) Но это не шибко быстро будет.

Constantine
15.07.2017
21:56:17
например

T const && x = f<T?);

очевидно корректная строка, нет?

Alexander
15.07.2017
21:57:01
как этот смайл интерпретировать?

и как сюда код вставлять вообще? тег есть какой-нибудь?

Constantine
15.07.2017
21:57:21
T const&& x = f<T>();

три раза тильда чтобы не реплейсило

ой не тильда

Google
Constantine
15.07.2017
21:57:30
`

вот этот знак

Alexander
15.07.2017
21:57:46
ага, понял. Спасибо

Constantine
15.07.2017
21:57:52
писать до блока кода и после

Alexander
15.07.2017
21:58:02
да, код корректный

Constantine
15.07.2017
21:58:02
((( код (((

undefined
15.07.2017
21:58:10


Alexander
15.07.2017
21:58:13
да понял я ?

Constantine
15.07.2017
21:58:22
русское название пожалуйста

я фанатический сторонник использования русского языка, пока речь не идет о терминах, которые я пишу по-английски

undefined
15.07.2017
21:59:57
Нашёл

Constantine
15.07.2017
22:00:16
Это диакритический знак, одиночный символ так же называется?

undefined
15.07.2017
22:00:24
https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BE%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%B9_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D1%84

Alexander
15.07.2017
22:00:50
ужас то какой, какие же прекрасные названия

Constantine
15.07.2017
22:01:09
а, этот знак называется обратный апостроф, действительно

Ioann V
15.07.2017
22:01:30
Но, вот эта штука точно дает UB, на счет той поищу: struct S{ std::vector<S> v;};

То есть так можно просто суффиксное дерево построить :)

Alexander
15.07.2017
22:02:04
Constantine
15.07.2017
22:02:08
Это просто явно вообще непонятно что

Alexander
15.07.2017
22:02:09
я не совсем улавливаю суть

Google
Ioann V
15.07.2017
22:02:26
Ну это просто пример из жизни

Constantine
15.07.2017
22:02:40
Хотя кстати наличие возможного mutable поля у структуры - одна из причин, почему компилятор не может ничего оптимизировать на тему const

Alexander
15.07.2017
22:02:44
Ну это просто пример из жизни
а в УБ онон превращается в каком коде?

Ioann V
15.07.2017
22:03:03
Constantine
15.07.2017
22:03:12
но там есть прикол

вот такой

Alexander
15.07.2017
22:03:20
Вот этот кусок кода и есть УБ
а как он в УБ превратился?

Ioann V
15.07.2017
22:03:23
Это не UB
Это стопроцентный уб

Constantine
15.07.2017
22:03:34
вот такой

Constantine
15.07.2017
22:03:35
struct Node { std::vector<Node> children; } root; void push_up(){ if (root.children.empty()) return; root = root.children[0]; //UB }

Ioann V
15.07.2017
22:03:35
Потому что стандарт разрешает

Constantine
15.07.2017
22:03:39
вот это - UB

Alexander
15.07.2017
22:03:44
Это стопроцентный уб
а ты можешь использовать тип до его определения?

Constantine
15.07.2017
22:03:47
а объявление структуры - не UB

Ioann V
15.07.2017
22:04:01
Неполные объявления типов

Constantine
15.07.2017
22:04:14
неполные что простите?

Ioann V
15.07.2017
22:04:15
В структурах можно в using или в указателях

Google
Constantine
15.07.2017
22:04:42
тип S полностью определен в объявлении S

Alexander
15.07.2017
22:04:42
хм, а в классе нет?

Ioann V
15.07.2017
22:04:57
Но если ты используешь в stl то ет гарантии

Constantine
15.07.2017
22:05:16
что вы хотите мне сказать?

Ioann V
15.07.2017
22:05:23
Что этот контейнер будет использовать данный тип как неполный

Constantine
15.07.2017
22:05:28
что я не могу использовать std::vector<S>?

вы шутите?

вы точно читали стандарт?

Alexander
15.07.2017
22:05:46
что я не могу использовать std::vector<S>?
ну он же типа внутри структуры хранит его

Admin
ERROR: S client not available

Ioann V
15.07.2017
22:05:51
Сейчас скину

Alexander
15.07.2017
22:05:55
внутри структуры S

в этом весь смысл

Constantine
15.07.2017
22:06:13
Только пожалуйста не stack overflow

Потому что struct S : public std::vector<S> {};

Alexander
15.07.2017
22:06:34
Только пожалуйста не stack overflow
если там будет выдержка со стандарта - то пойдёт

Ioann V
15.07.2017
22:06:47
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html

Ну или вроде как 17.6.8.4

Constantine
15.07.2017
22:07:31
это пропоузал к стандарту

Ioann V
15.07.2017
22:07:59
Да, это обсуждение с просьбой

Google
Ioann V
15.07.2017
22:08:12
Добавить это не как ub в будущие стандарты

Alexander
15.07.2017
22:08:23
Да, это обсуждение с просьбой
не-не, такое не прокатит здесь)

надо бы выдержку стандарта к этому

Ioann V
15.07.2017
22:08:46
Тогда вот:

Constantine
15.07.2017
22:09:12
В стандарте нет гарантии, что std::vector может быть инстанцирован по Incomplete Type?

Ioann V
15.07.2017
22:09:20
Да

Constantine
15.07.2017
22:09:22
Это обсуждается?

Это не UB

UB это если бы это содержало ошибку

Ioann V
15.07.2017
22:09:38
Ну, а что это тогда :?

Если нужна отсыллка к стандарту, то надо смотреть вот эти главы

17.6.4.8

Berkus
15.07.2017
22:11:01
((( код (((
если в одну строчку то достаточно одного ` с каждой стороны, три для блока

Ioann V
15.07.2017
22:11:40
In particular, the effects are undefined in the following cases: … if an incomplete type (3.9) is used as a template argument when instantiating a template component, unless specifically allowed for that component

Alexander
15.07.2017
22:11:49
http://www.drdobbs.com/the-standard-librarian-containers-of-inc/184403814

Ioann V
15.07.2017
22:12:16
Кажется так как то :)

Ioann V
15.07.2017
22:12:37
Нет

Alexander
15.07.2017
22:12:42
если нет, то UB

окей, вот и порешали

Constantine
15.07.2017
22:14:31
хм....

Ioann V
15.07.2017
22:14:38
Если например, кстати рассмотреть вектор с имплейс аллокацией для мелких массивов... ну и бог с ним. Замечу я не сторонник холиваров. Но тут есть интересные моменты и решения. А на последний момент я лично и сам попадался - как писал, при реализации суффиксного дерева

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