Вопросы по теме '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 просмотров
schedule
16.08.2022
Инициализировать вектор ‹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 просмотров
schedule
20.08.2022
Не удалось разрешить перегрузку, так как ни одно доступное «Шоу» не может быть вызвано без сужающего преобразования.
У меня возникли проблемы, связанные с этой ошибкой конверсии сужения
Не удалось разрешить перегрузку, так как ни одно доступное «Шоу» не может быть вызвано без сужающего преобразования:
«Отображение общедоступной общей функции (владелец...
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