Описание тега narrowing
2
ответа
Почему сужающее преобразование, используемое с инициализатором с разделителями в виде фигурных скобок, не вызывает ошибку?
Я узнал о инициализаторе, разделенном фигурными скобками, в языке программирования C++, 4-е изд. > Глава 2: Тур по C++: Основы. Я цитирую из книги ниже. Форма = традиционна и восходит к C, но в случае сомнений используйте общую форму {} -list (§6.3.…
28 июл '15 в 19:09
4
ответа
C++11: "сужение преобразования внутри { }" с модулем
Я пытаюсь скомпилировать следующий код с gcc а также C++11 включено: unsigned int id = 100; unsigned char array[] = { id % 3, id % 5 }; Я получаю эти предупреждения: сужение преобразования "(id % 3u)" из "unsigned int" в "unsigned char" внутри { } […
17 ноя '14 в 14:21
5
ответов
Что именно является сужением преобразования типов в Java?
Согласно моим знаниям в Java, при сужении преобразования типов допускается использование источника в любой константе, которая находится в диапазоне байтов, чем следующее: byte b=10; // allowed because 10 is in range of byte and 10 is a constant но к…
30 май '14 в 07:19
1
ответ
Как правильно определить целочисленный вектор, содержащий научные обозначения в C++?
Код #include <iostream> #include <vector> int main () { std::vector<int> N = {3e6, 4e6}; } Выдает ошибку error: narrowing conversion of ‘3.0e+6’ from ‘double’ to ‘int’ inside { } [-Wnarrowing]|||. В то время как #include <iostre…
07 июн '17 в 17:34
3
ответа
Есть ли "безопасная" альтернатива static_cast?
Есть ли "безопасная" альтернатива static_cast в C++11/14 или библиотека, которая реализует эту функциональность? Под "безопасным" я подразумеваю, что приведение должно разрешать только приведение, которое не теряет точности. Так что актерский состав…
17 окт '18 в 14:54
0
ответов
Сужение преобразования от 'int' до 'double' и инициализация массива
Следующие int i = 0; double d{i}; выдает ошибку (в clang) или предупреждение (в gcc) narrowing conversion from 'int' to 'double', Мне показалось удивительным, что это действительно сужается, по крайней мере до тех пор, пока я не увидел сужающееся пр…
23 мар '14 в 18:10
1
ответ
Неправильно ли 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 с теми же параметрами выдает эту ошибку: ошибка: …
09 июл '13 в 22:08
2
ответа
C# знаковые и беззнаковые целые числа сужают преобразование в обоих направлениях?
Согласно статье MSDN: https://msdn.microsoft.com/en-us/library/8s682k58%28v=vs.80%29.aspx Некоторые компиляторы требуют явного преобразования для поддержки сужающих преобразований. Основываясь на заявлениях, сделанных в приведенной выше ссылке msdn,…
19 фев '15 в 15:13
1
ответ
Почему "unsigned int ui = {-1};" сужающаяся ошибка преобразования?
Стандарт в п. 8.5.4/7 объясняет, что такое сужающее преобразование: Сужающее преобразование - это неявное преобразование - от типа с плавающей точкой к целочисленному типу, или - от long double до double или float, или от double до float, за исключе…
09 июл '13 в 14:59
2
ответа
Неявные правила сужения в Java
byte b = 0xFFFFFFFF; //OK, because integer -1 sits between -128 and 127, FINE!! char ch = 0xFFFFFFFF; //Not OK, because integer -1 does not sit between 0 and 65535, FINE!! byte b = 0L; //Compiler says Not OK? But long integer 0 sits between -128 and…
11 июн '15 в 07:14
2
ответа
Что это значит "сужение примитива усекает биты старшего разряда"
Что это значит "сужение примитива усекает биты старшего разряда"
21 июл '11 в 14:42
2
ответа
Понимание gsl:: узкой реализации
Основные принципы C++ имеют narrow приведение, которое бросает, если приведение изменяет значение. Рассматривая реализацию библиотеки Microsoft: // narrow() : a checked version of narrow_cast() that throws if the cast changed the value template <…
17 окт '18 в 21:08
1
ответ
C++ / OpenGL: пример текстуры с растровым изображением - ошибка сужения конверсии
Я пытаюсь запустить эту текстуру для примера растрового изображения из OpenGL и получить следующую ошибку tex_to_pix.cpp:40:1: error: narrowing conversion of ‘4294967295u’ from ‘unsigned int’ to ‘int’ inside { } [-Wnarrowing] Ошибка относится к след…
30 окт '17 в 15:56
1
ответ
Есть ли способ добиться сужения типа путем проверки с помощью функции?
class A {} class B extends A { bb() { ... } } function isB(obj: A) { return obj instanceof B; } const x: A = new B(); // x has type A if (isB(x)) { x.bb(); // can I get x to have type B? } Я знаю, что если у меня есть x instanceof B в состоянии это …
13 июл '18 в 21:41
1
ответ
Неверное сужающееся преобразование из "float" в "int"
Я использую графическую библиотеку SFML для C++. Мой компилятор - Visual Studio 2017. Когда я делал функцию scale Я столкнулся с проблемой. У меня была ошибка, говорящая: Invalid narrowing conversion from "float" to "int" Итак, я положил roundf пере…
13 янв '18 в 11:35
2
ответа
Сужающее преобразование в C++
В Руководстве Биджа по сетевому программированию есть функция, призванная обеспечить переносимый способ сериализации 16-битного целого числа. /* ** packi16() -- store a 16-bit int into a char buffer (like htons()) */ void packi16(unsigned char *buf,…
07 сен '14 в 12:24
3
ответа
Принудительное сужение предупреждения о преобразовании
Рассмотрим следующий код, который иллюстрирует некоторые сужающие преобразования: template <class T> class wrapper { template <class> friend class wrapper; public: constexpr wrapper(T value) : _data(value) {} template <class U> con…
12 окт '16 в 21:11
1
ответ
Как сузить список до максимального количества одинаковых элементов в C#
Допустим, у меня есть этот список в массиве под названием "массив": [0]a.1 [1]b.1 [2]c.1 [3]d.1 [4]e.2 [5]f.2 [6]g.2 [7]h.3 Я хочу сузить его с помощью C# до списка с максимум двумя одинаковыми числами в списке, чтобы он выглядел так: [0]a.1 [1]b.1 …
09 авг '16 в 15:20
1
ответ
Узкая стог сена Джанго с оператором ИЛИ между полями
Я делаю поиск. Я сужу по полю А. Я сужаю по полю Б. Я получаю результаты, которые включают мешковину и мешок. Я хочу получить результаты, которые включают мешковину или мешок. sqs = sqs.narrow(fieldA='burlap') sqs = sqs.narrow(fieldB='sack') Вы може…
08 май '14 в 14:32
1
ответ
Какие гарантии дает стандарт C++ для сужения преобразования от double до int?
Какие гарантии дает стандарт C++ для сужения преобразования типов типа double в int? Это так же, как Java, как объяснено в Q31328190:
04 янв '16 в 18:58