Size: a a a

Чат "Программист"

2020 June 13

SK

Stas Khavruk in Чат "Программист"
Серверный Кит
struct SimpleVariant {
union data {
int int_v;
std::string str_v;
double double_v;
};

uint8_t type;
};

#define INT_TYPE 0u
#define STRING_TYPE 1u
#define DOUBLE_TYPE 2u

SimpleVariant variant {};

variant.data.double_v = 10.0;

variant.type = DOUBLE_TYPE;
Ахах. Нам теперь надо это чудо записать/считать с файла
источник

SK

Stas Khavruk in Чат "Программист"
Масив этих чуд
источник

SK

Stas Khavruk in Чат "Программист"
Матрицу*
источник

СК

Серверный Кит... in Чат "Программист"
изи
источник

СК

Серверный Кит... in Чат "Программист"
type, value
источник

СК

Серверный Кит... in Чат "Программист"
type - uint8_t 1 byte
value - n bytes(depends on type, std::string is not trivially copyable type, you should specify string length first, and then copy string content to the buffer)
источник

СК

Серверный Кит... in Чат "Программист"
ни в коем блять случае не копируй строку в файл с помощью memcpy(по указателю, из .data  - можно)
источник

СК

Серверный Кит... in Чат "Программист"
я тебя захуярю
источник

SK

Stas Khavruk in Чат "Программист"
Серверный Кит
я тебя захуярю
Это запись. А считать как?
источник

СК

Серверный Кит... in Чат "Программист"
точно так же
источник

SK

Stas Khavruk in Чат "Программист"
источник

СК

Серверный Кит... in Чат "Программист"
uint8_t type;
read_function(fp, &type, 1); // file pointer, void *, length
источник

СК

Серверный Кит... in Чат "Программист"
и там уже в зависимости от типа загружаешь в память данные
источник

СК

Серверный Кит... in Чат "Программист"
если там строка, то:
uint32_t length = read_length(fp);
std::string string(buffer+offset+sizeof(uint32_t), length);
источник

СК

Серверный Кит... in Чат "Программист"
ну как-то так
источник

SK

Stas Khavruk in Чат "Программист"
@SRPNTD Короче, друг-студент в Польще на предмете ООП делал похожую универсальную фигню, а ему препод: "Не выпендрюйся и делай как все". Пздц. Зря старались универсальный варик сделать. Его заставляют онли типизированные колонки и кодить только с указателями и масивами без намудренных union. +- class
источник

СК

Серверный Кит... in Чат "Программист"
лул
источник

СК

Серверный Кит... in Чат "Программист"
препод какойта странный
источник

Dฅ

DanilSay ฅ^•ﻌ•^ฅ... in Чат "Программист"
Stas Khavruk
@SRPNTD Короче, друг-студент в Польще на предмете ООП делал похожую универсальную фигню, а ему препод: "Не выпендрюйся и делай как все". Пздц. Зря старались универсальный варик сделать. Его заставляют онли типизированные колонки и кодить только с указателями и масивами без намудренных union. +- class
Стоп
источник

Dฅ

DanilSay ฅ^•ﻌ•^ฅ... in Чат "Программист"
Буквально массивами?..
источник