Size: a a a

2020 August 29

AT

Anatoly Tomilov in pro.cxx
Neargye
возможно надо std::launder для надежности
Утверждают что совсем-совсем нельзя
источник

N

Neargye in pro.cxx
Anatoly Tomilov
Утверждают что совсем-совсем нельзя
а объект как был создан?
источник

ПК

Побитый Кирпич... in pro.cxx
Anatoly Tomilov
Утверждают что совсем-совсем нельзя
Ну launder был придуман чтоб UB обходить, с ним мб и можно
источник

AT

Anatoly Tomilov in pro.cxx
Neargye
а объект как был создан?
In place operator new
источник

N

Neargye in pro.cxx
Anatoly Tomilov
Утверждают что совсем-совсем нельзя
А вот если этот воид указатель на то что вернул малок?
источник

ПК

Побитый Кирпич... in pro.cxx
Neargye
А вот если этот воид указатель на то что вернул малок?
То что?
источник

N

Neargye in pro.cxx
то я пошел читать стандарт) вопросов больше чем ответов
источник

VS

Vlad Serebrennikov in pro.cxx
Anatoly Tomilov
Утверждают что совсем-совсем нельзя
какие у них аргументы? потому что вот это примечание описывает ситуацию, очень похожую на вашу
источник

VS

Vlad Serebrennikov in pro.cxx
да и нормативные предусловия в вашем случае тоже выполняются, как мне кажется
источник

N

Neargye in pro.cxx
Anatoly Tomilov
In place operator new
Вроде бы вот ваша ситуация? Но тут нужны подробности и чекнуть условия)

If, after the lifetime of an object has ended and before the storage which the object occupied is reused or released, a new object is created at the storage location which the original object occupied, a pointer that pointed to the original object, a reference that referred to the original object, or the name of the original object will automatically refer to the new object and, once the lifetime of the new object has started, can be used to manipulate the new object, if the original object is transparently replaceable (see below) by the new object.

http://eel.is/c++draft/basic.life#8
источник

N

Neargye in pro.cxx
То все хорошо в с++20 точно
источник

VS

Vlad Serebrennikov in pro.cxx
да, только есть нюанс с const
источник

N

Neargye in pro.cxx
Vlad Serebrennikov
да, только есть нюанс с const
Вот тут и нужна прачечная

If these conditions are not met, a pointer to the new object can be obtained from a pointer that represents the address of its storage by calling std::launder
источник

N

Neargye in pro.cxx
Vlad Serebrennikov
да, только есть нюанс с const
Хм. Да вы правы, тут даже прачечная не поможет

> Creating a new object within the storage that a const complete object with static, thread, or automatic storage duration occupies, or within the storage that such a const object used to occupy before its lifetime ended, results in undefined behavior.
источник

VS

Vlad Serebrennikov in pro.cxx
спасибо за цитаты
я не так глубоко в этом разбираюсь, как вы подумали
источник

Q

Qqqq in pro.cxx
всем привет ,кто может помочь с проблемой на плюсах?
источник

VS

Vlad Serebrennikov in pro.cxx
источник

Q

Qqqq in pro.cxx
могу задать вопрос конеретнее ,но для этого надо понять в тот ли чат я написал
источник

Е

Егор in pro.cxx
Qqqq
могу задать вопрос конеретнее ,но для этого надо понять в тот ли чат я написал
с некоторой вероятностью не в тот (@supapro)
источник

Q

Qqqq in pro.cxx
реализую класс "карточка" где есть слово и его перевод .Реализовал на map ,нужно написать метод "пересечение"словарей которая возвращает словарь со словами которые есть в пером и втором словаре .При этом написал перегрузку для оператора = в классе "карточка". Для написаная этого метода использовал итератор на map и через цикл проверял совпадения перевода слова из первого словаря и из второго (реализация решения моет быть и другой но суть не в этом).в общем пишу
map<string,string>::iterator it;
for(it=temp1.WordCard.begin();it!=temp.WordCard.end();it++)
и при компиляции выводится ошибка :error :no viable overloaded '='
источник