Size: a a a

2020 June 07

DB

Dimmu Borgir in pro.cxx
ребята что делать  vs не запускается  ( dde server windows devenv.exe - ошибка приложения)
источник

in pro.cxx
Привет. А нормально ли юзать макросы в си, чтобы делать параметризованные типы?
источник

DF

Dollar Føølish in pro.cxx
Да, примерно так и делают
источник

in pro.cxx
Можно так вектор сделать, например:
https://pastebin.com/WM6Y1e31
источник

in pro.cxx
Dollar Føølish
Да, примерно так и делают
Ок, спасибо
источник

v

vehlwn in pro.cxx
Можно так вектор сделать, например:
https://pastebin.com/WM6Y1e31
Теперь отлаживай это.
источник

v

vehlwn in pro.cxx
>arr->content = (T *)realloc(arr->content

Реаллок провалился и старый кусок памяти утек.
источник

in pro.cxx
vehlwn
>arr->content = (T *)realloc(arr->content

Реаллок провалился и старый кусок памяти утек.
Это пример использования макроса для реализации параметризованного типа, а не пример реализации идеального вектора )
источник

in pro.cxx
Ясно, что над атомарностью и прочим надо ещё поработать
источник

in pro.cxx
vehlwn
>arr->content = (T *)realloc(arr->content

Реаллок провалился и старый кусок памяти утек.
С другой стороны, если я хочу, чтобы моё приложение при ошибке реаллока падало, то почему нет
источник

AF

Aidar Fattakhov in pro.cxx
vehlwn
Я сделал.
#include <type_traits>
template <class T>
concept Int = std::is_same_v<T, int>;
struct A {
   template<Int T>
   int f(T);
};
template<Int T>
int A::f(T) {
   return 42;
}
int main() {
   return A{}.f(0);
}
Ого
источник

AF

Aidar Fattakhov in pro.cxx
Ты начал юзать си++20?
источник

in pro.cxx
С другой стороны, если я хочу, чтобы моё приложение при ошибке реаллока падало, то почему нет
По крайней мере оно возвращает false
источник

AF

Aidar Fattakhov in pro.cxx
Ruben
и сразу еще вопрос, насколько можно использовать структуры для сериализации в буфер в С++?
То есть создаем структуру:
struct packet_t {
uint16_t  one : 4;
uint16_t  two : 6;
uint16_t  three : 6;
uint16_t  four : 16;
} __attribute__((packed));

Далее пишем:
auto packet = static_cast<packet_t*>(buf);
.......

То есть заполняем буфер через структуру. В С это повсеместная практика, а насколько опасно так делать в плюсах? В структуре гарантировано нет определенных программистом методов, и она с атрибутом packed
А бы сказал чтт ваще packed нельзя юзать хех
источник

AF

Aidar Fattakhov in pro.cxx
Это ж расширения которые явно запрещены стандартом
источник

AF

Aidar Fattakhov in pro.cxx
Причем полагаю сишным тоже
источник

AT

Andrew Titov in pro.cxx
Aidar Fattakhov
Это ж расширения которые явно запрещены стандартом
Прямо-таки запрещены?
источник

v

vehlwn in pro.cxx
Aidar Fattakhov
Ты начал юзать си++20?
Я открыл первую ссылку в гугле по вопросу c++ sfinae.
источник

AF

Aidar Fattakhov in pro.cxx
Andrew Titov
Прямо-таки запрещены?
Ну да как любое взаимодействие с невыровнеными объектами (если это небитфилды)
источник

DF

Dollar Føølish in pro.cxx
Логично
источник