Vladimir
Ну по скольку все по дефолту ноль, то запись нуля = удалению элемента
Αλεχ
и надеятся, что они не пересекутся
Vladimir
Αλεχ
не суть
Αλεχ
http://solidity.readthedocs.io/en/v0.4.24/miscellaneous.html
Αλεχ
The position of data[4][9].b is at keccak256(uint256(9) . keccak256(uint256(4) . uint256(1))) + 1.
Vladimir
П
Vladimir
А
Vladimir
Хеш
Αλεχ
Да
Vladimir
Тоесть эфириумовская память на самом деле уже поверх хешмапы
Αλεχ
скорее она линейная
Αλεχ
по крайней мере она так выглядит
Αλεχ
как она устроена честно говоря пох
Αλεχ
короче я хотел бы более адекватно реализвоать
Αλεχ
но пока идей никаких
Αλεχ
разве что массивы получились попизже
Vladimir
Ну если можно писать в рандомное адресное пространство, в большое адресное пространство, то явно хешмапс
Vladimir
Так а в чем проблема честный хешмап сделать?
Vladimir
Vladimir
Тогда ебошишь хешмап, где пустые = ноль, и дифиринцировать не надо. Ну как я понимаю тебе ресайзить хешмап нельзя?
Αλεχ
Vladimir
Αλεχ
Vladimir
Или это пространство для всей програмы
Αλεχ
скорее второе
Αλεχ
это скорее куча, где живет объект
Αλεχ
у него может быть много полей и массивы
Vladimir
Почему нельзя как в оригинале? Брать рандомную ячейку
Αλεχ
потому что я не хочу забивать хуй на коллизии
Αλεχ
даже если они маловероятны
Αλεχ
массивы у меня детерменированно кладутся
Αλεχ
например
Αλεχ
они делают 4 хэширования просто чтоб узнать ячейку
Vladimir
Ты говорил что тебе не важно ресайзится хешмапы или нет?
Vladimir
А как же газ?
Αλεχ
Vladimir
Ну тогда хешмапа будет просто Vec<List<Elem>>
Денис
я походу тут напиздел — https://t.me/rustlang_ru/139789 — в плюсах таки есть АДТ в виде std::variant<...>, правда по-прежнему нет паттерн-матчинга)
Αλεχ
The mapping or the dynamic array itself occupies an (unfilled) slot in storage at some position p according to the above rule (or by recursively applying this rule for mappings to mappings or arrays of arrays). For a dynamic array, this slot stores the number of elements in the array (byte arrays and strings are an exception here, see below). For a mapping, the slot is unused (but it is needed so that two equal mappings after each other will use a different hash distribution). Array data is located at keccak256(p) and the value corresponding to a mapping key k is located at keccak256(k . p) where . is concatenation. If the value is again a non-elementary type, the positions are found by adding an offset of keccak256(k . p).
Αλεχ
не понимаю
Αλεχ
что тут имеется ввиду
Vladimir
Αλεχ
Cat
Αλεχ
но я плохо понимаю че они пишут
Αλεχ
и нельзя ли лучше
Αλεχ
Αλεχ
ну вся статья про std::visit и хуйню
Cat
но.. в статье же как раз про матчинг.....
Berkus
Cat
vladislav
говно этот конан
Berkus
бред какой
Berkus
Денис
conan не всё поддерживает
ну то есть он не поддерживает либы, которые в него не загрузили? или есть либы, которые туда нельзя загрузить?)
Cat
Cat
насколько я читал
Cat
поясните, гуру с++
Berkus
Денис
Berkus
и как обычно, половина нужных тебе либ найдется, а остальную надо искать по помойкам типа частных пакаджей
vladislav
хотел заюзать конан, а он не поддерживал на тот момент свежие версии компиляторов
vladislav
и я сказал пошёл ты знаешь куда
Berkus
да идите в хуй с такими предьявами
vladislav
рил
Денис
а какая им там разница на версию компилера?..
vladislav
для пет проджектов и обычный cmake файл сойдёт
Vladimir
Ну подозреваю что в с++ нет семвера
Berkus
Vladimir
А значит еврисинг ис а брекинг ченж
Vladimir
Разве симейк так не делал?
Berkus