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

Неверно ли, что gcc не диагностирует сужающие преобразования в аргументах шаблона, отличного от типа?
Следующая программа компилируется без ошибок и предупреждений с помощью gcc 4.8.1, -Wall -std=c++11 : template<unsigned N> struct A{}; int main(){ A<1-2> a; (void)a; return 0; } clang 3.3 с теми же параметрами выдает...
1198 просмотров
schedule 25.03.2022

Сужающее преобразование в C++
В Руководстве Beej по сетевому программированию есть функция это должно было обеспечить переносимый способ сериализации 16-битного целого числа. /* ** packi16() -- store a 16-bit int into a char buffer (like htons()) */ void packi16(unsigned...
859 просмотров
schedule 21.02.2023

С++ 11: сужающее преобразование внутри {} по модулю
Я пытаюсь скомпилировать следующий код с включенными gcc и C++11 : unsigned int id = 100; unsigned char array[] = { id % 3, id % 5 }; Я получаю эти предупреждения: сужение преобразования ‘(id % 3u)’ из ‘unsigned int’ в ‘unsigned...
2733 просмотров
schedule 25.02.2023

Почему переменная final не всегда является константным выражением?
В приведенном ниже коде: final int a; a=2; byte b=a; // error: possible loss of precision Почему я получаю эту ошибку? Разве a final переменная не является постоянным выражением времени компиляции и, следовательно, неявно сужается до...
1828 просмотров

Инициализировать вектор ‹char› значениями int
Я хочу инициализировать этот вектор символов с помощью этих кодов ASCII: vector <char> a = { 201, 187, 200, 188, 205, 186 }; и я получаю эту синтаксическую ошибку во всех 6 символах: Недопустимое сужающее преобразование из "int"...
6342 просмотров
schedule 11.01.2023

Скрытое сужающее преобразование из int в uint8_t
Рассмотрим следующий фрагмент кода: #include <cstdint> class A { public: explicit A(uint8_t p_a){ m_a = p_a; }; uint8_t get_a() const {return m_a;} private: uint8_t m_a; }; int main() { A a {0x21U}; A aa{0x55U};...
5585 просмотров

Не удалось разрешить перегрузку, так как ни одно доступное «Шоу» не может быть вызвано без сужающего преобразования.
У меня возникли проблемы, связанные с этой ошибкой конверсии сужения Не удалось разрешить перегрузку, так как ни одно доступное «Шоу» не может быть вызвано без сужающего преобразования: «Отображение общедоступной общей функции (владелец...
1508 просмотров
schedule 29.04.2022

Почему const int подходит для инициализации символьной скобки?
Я думал, что инициализация скобки не допускает сужения. Но почему int const разрешено для инициализации char фигурной скобки? int value1 = 12; char c1{value1}; // error! no narrowing const int value2 = 12; char c2{value2}; // why is this...
175 просмотров
schedule 24.07.2023

В чем разница между использованием () и {} для инициализации переменной?
Этот код test.cc #include <iostream> int main(){ int a = 10; bool b {a}; bool c (a); std::cout << a << " " << b << " " << std::endl;...
53 просмотров
schedule 16.05.2023

постоянное выражение оценивается как -1, которое не может быть сужено до типа 'char' [-Wc++11-narrowing] ошибка
Я работаю со старым кодом, и при компиляции с использованием более нового стандарта C++ я получаю ошибку на каждом -1 . constant expression evaluates to -1 which cannot be narrowed to type 'char' [-Wc++11-narrowing] Вот фрагмент кода...
344 просмотров
schedule 23.04.2023