170 похожих чатов

No viable overloaded operator[] for type 'Actor *[3]'

User = &Users[userInt]; //User

в хидере:
tl::optional<int> userInt;

это больше не int или что? не могу указать элемент массива

11 ответов

19 просмотров

Неа, это не инт теперь Это optional<int>. Там может внутри лежать инт, а может и не лежать Хранимый инт можно достать через value, value_or, operator* (так понимаю, у тебя порт стандартного optional на ранние плюсы) Вдогонку, индексировать массив лучше не интами, а std::size_t

bubilden- Автор вопроса
Georgy Firsov
Неа, это не инт теперь Это optional<int>. Там може...

понял, спасибо. но тут мне size_t будет неудобен, т.к. userInt - член класса и любой ввод юзера, конвертированный в число

Georgy Firsov
Неа, это не инт теперь Это optional<int>. Там може...

size_t лучше вообще ни для чего не использовать

Kelbon
???

https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#es107-dont-use-unsigned-for-subscripts-prefer-gslindex

Pepe 🐸
https://isocpp.github.io/CppCoreGuidelines/CppCore...

выгоднее дать как можно больше гарантий, очень много ситуаций когда компилятор реально лучше оптимизирует, когда ему известно что тип беззнаковый

Kelbon
выгоднее дать как можно больше гарантий, очень мно...

наоборот саорее оптимизации для знакового числа, потому что переполнение не определено

Pepe 🐸
https://isocpp.github.io/CppCoreGuidelines/CppCore...

ну я бы много поспорил, да и не только ES107, но и, скажем, ES87

Constantine Drozdov
ну я бы много поспорил, да и не только ES107, но и...

а какие аргументы за беззнаковое? Мне в принципе аргументы против понятны, а за?

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
Есть предложения, как подобное можно упростить?
Hemul GM
12
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Карта сайта