
Alexandr
24.09.2018
17:56:10
Тоесть нельзя мне delete к выделенному кусочку памяти применять?
Но я же навернул туды new(mem) Myclass
после malloc
Или оно так не работает?

Google

Побитый
24.09.2018
17:57:07

Alexandr
24.09.2018
17:57:54
Ага, вот только проверил

Arseny
24.09.2018
17:58:10
Правильно вызвать деструктор явно. А затем free

Побитый
24.09.2018
17:58:15

Alexandr
24.09.2018
17:59:05
деструкторов*

Побитый
24.09.2018
17:59:33

Yarique
24.09.2018
18:00:18
Нет деструкторов? Это какой такой тип?

Побитый
24.09.2018
18:00:46

Yarique
24.09.2018
18:01:27
std::is_pod?

Arseny
24.09.2018
18:01:37
Да не нужно отличать. .~T() сработает

Yarique
24.09.2018
18:03:42
template <class T> void inline destruct(T &&t) noexcept
{
using wo_ref = std::remove_reference_t<T>;
t.~ wo_ref();
}

Alexandr
24.09.2018
18:06:18
@arseny @belgorodsky
template<typename T>
struct Test {
T* var = nullptr;
Test() {
var = static_cast<T*>( malloc(sizeof(T)) );
var = new (var) T();
}
~Test() {
var->~T;
free(var);
var = nullptr;
}
};

Google

Alexandr
24.09.2018
18:06:23
Test<int> t;

Yarique
24.09.2018
18:07:22
template <class T> void inline destruct(T &&t) noexcept
{
using wo_ref = std::remove_reference_t<T>;
t.~ wo_ref();
}

Arseny
24.09.2018
18:07:57
Ну а скобочки после T?

Alexandr
24.09.2018
18:08:23
Спасибо

Alexander
24.09.2018
18:57:25
Всем рекомендую доклад Bryce Lelbach про C++ execution model с cppcon 2018.

Максим
24.09.2018
19:05:32
Чем отличается семафор и двоичный семафор в Windows api или они ни чем не отличаются?

Anton
24.09.2018
19:55:02
как будто с самого начала не было ясно, что так и будет

Aidar
24.09.2018
20:01:08

FailsBot
24.09.2018
20:06:34
/dev/urandon достал тапок из обджект-пула и кинул в автора

PRoSToC0der
24.09.2018
20:48:18

Yarique
24.09.2018
20:57:55
Ребят, подскажите, пожалуйста.
auto sock = std::make_shared<boost::asio::ip::tcp::socket>(
ioc,
ep.protocol()
);
sock-> async_connect(
ep,
[s= std::move(sock) ](auto && ...args){...}
);
это undefined behaviour?

PRoSToC0der
24.09.2018
21:01:22

Valentin
24.09.2018
21:13:16
если такое есть

Anton
24.09.2018
21:14:41

Valentin
24.09.2018
21:15:16
https://ru.cppreference.com/w/cpp/types/is_destructible

Aidar
24.09.2018
21:16:07

Google

Anton
24.09.2018
21:16:46
bar foo = (bar)foobar;
короче )
как вариант можно было бы разрешить писать
bar foo = foobar;
пусть компилятор там сам разбирается с приведением типов

Evgeniy
24.09.2018
21:19:45

Anton
24.09.2018
21:20:18
чем это отличается от auto foo=static_cast<bar>(foobar); ?
Although static_cast conversions are checked at compile time to prevent obvious incompatibilities, no run-time type check is performed that would prevent a cast between incompatible data types, such as pointers. Also, the result of a static_cast from a pointer of a virtual base class to a pointer of a derived class is undefined.
кароч хуита без гарантий этот static_cast