Вопросы по теме 'narrowing'

Как работает многобайтовый символ '\ 377777'?
Кланг упомянул мне об этой штуке, когда я пробовал различные нестандартные способы найти std::numeric_limits<size_t>::max() для моего allocator::max_size() Размер выражения кажется ограниченным до 4 байтов, поэтому он очень похож на...
53 просмотров

Сужающее преобразование
#include <iostream> #include <vector> #include <cctype> using namespace std; char get_selection() { char selection{}; cin >> selection; return toupper(selection); } int main() { char selection {}; do{...
992 просмотров

Машинопись: [Время компиляции] Записываемый (- читаемый) массив / объект с сужением константного типа
Используя утверждение const , можно красиво сузить тип литерала объекта / массива до его элементов. e.g. const arr = [ [5, "hello"], [5, "bye"], ] as const; type T = typeof arr; // type T = readonly [readonly [5,...
155 просмотров

Почему `bool b = 2` работает хорошо, а `bool b = {2}` выдает предупреждение о сужающем преобразовании?
Использование инициализатора {} в C++11 для инициализации bool b = {2} приводит к следующему предупреждающему сообщению: warning: narrowing conversion of ‘2’ from ‘int’ to ‘bool’ inside { } [-Wnarrowing] Однако при использовании старого...
581 просмотров
schedule 03.02.2023

Почему Typescript не может определить тип в моем коде?
Почему компилятор Typescript жалуется на следующий код? type Foo = { a: string } type Bar = { b: number } type Baz = Foo | Bar; function f(x: Baz): number { if (x.a) { // property 'a' does not exist on type Bar! return 0; } if...
85 просмотров
schedule 25.04.2023

Почему предупреждение о конверсии сужения появляется только в случае инициализации списка?
У меня есть следующий код: class A { public: A(const unsigned int val) : value(val) {} unsigned int value; }; int main() { int val = 42; A a(val); A b{val}; // <--- Warning in GCC, error in Microsoft...
1122 просмотров

Задача вывода/сужения типа TypeScript
В настоящее время я пытаюсь улучшить типы в некотором существующем коде. Мой код выглядит примерно так: /* dispatcher.ts */ interface Message { messageType: string; } class Dispatcher<M extends Message> { on<...
858 просмотров