когда был бы Вы использовать uint_least16_t

Прежде всего, используйте новый синтаксис для соединений:

connect(copyr, &QPushButton::clicked, this, &ClassName::c2c);

Однако вы не можете подключить сигнал, который не предоставляет параметр, к слоту, который его ожидает. Здесь у вас есть несколько вариантов:

  • Удалите параметр из слота полностью и получите значение из слота.
  • Укажите параметр по умолчанию в объявлении слота, чтобы его можно было вызывать без аргументов
  • Обернуть соединение в лямбду, если вы хотите, чтобы параметр из соединительного кода поступал в слот следующим образом:

    connect( copyr, &QPushButton::clicked, [this, txt](){ this->c2c(txt); } );

5
задан Gordon Wrigley 30 October 2008 в 07:12
поделиться

3 ответа

Скажите, что Вы работаете над компилятором с:

  • unsigned char 8 битов
  • unsigned short 32 бита
  • unsigned int 64 бита

И неподписанный интервал является 'самым быстрым'. На той платформе:

  • uint16_t не было бы доступно
  • uint_least16_t были бы 32 битовых значения
  • uint_fast16_t были бы 64 битовых значения

Немного тайный, но это - то, для чего это.

То, насколько полезный они, является другой историей - я вижу точные варианты размера все время. Это - то, что хотят люди. 'Наименьшее' и 'быстрые' версии, к которым я видел используемый достаточно близкий никогда (возможно, что это было только в примере кода - я действительно не уверен).

10
ответ дан 13 December 2019 в 05:44
поделиться

Это - часть c стандарта. Этому не нужен хороший вариант использования.:P

Посмотрите эту страницу и ищите раздел, названный "Целые типы Минимальной ширины".

0
ответ дан 13 December 2019 в 05:44
поделиться

А-ч, ссылка, которую отправил Patrick, включает, это "Имя определения типа uint_leastN_t называет тип беззнаковых целых чисел с шириной, по крайней мере, N, таким, что никакой тип беззнаковых целых чисел с меньшим размером не имеет, по крайней мере, указанную ширину".

Таким образом, мое текущее понимание:

uint_least16_t пустяк, который способен к содержанию uint16

uint_fast16_t самая быстрая вещь, которая способна к содержанию uint16

uint16_t точно uint16, к сожалению, может не быть доступным на всех платформах, ни на какой платформе, где, доступный uint_least16_t, будет относиться к нему. Таким образом, если бы это, как гарантировали, будет существовать на всех платформах, то нам не был бы нужен uint_least16_t вообще.

2
ответ дан 13 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

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