Описание тега compiler-bug

По вопросам о (подозреваемом) некорректном поведении компилятора. Используйте с соответствующим языковым тегом и, если применимо, с тегом для рассматриваемого компилятора.
3 ответа

Возможная ошибка в Java 8 Обновление 45 в Windows 8

Этот код берет входное изображение и создает выходное изображение, размер которого в два раза больше. Первые четыре строки во внутреннем цикле записывают четыре копии оригинала одинакового размера, последние четыре строки должны перезаписывать мален…
27 май '15 в 15:56
1 ответ

Ошибки valgrind при сборке с встраиванием, сделанные g++5 - ошибка в valgrind или g++5?

Точные версии g++ и valgrind: g++-5 (Ubuntu 5.2.1-23ubuntu1~12.04) 5.2.1 20151031 valgrind-3.7.0 Я не стал вдаваться в то, какой именно флаг делает это (finline-small-functions/findirect-inlining/finline-functions/finline-functions-вызвано-единожды …
1 ответ

Быстрая оценка @autoclosure под влиянием аннотаций типов? (ошибка компилятора?)

Сегодня я снова играл со Свифтом и нуждался в undefined() функция. В основном функция, которая может быть любого типа, которую вы хотите, но сбои, когда она фактически запускается / оценивается. Это полезно, если вы еще не успели реализовать определ…
17 янв '15 в 20:44
2 ответа

Аргумент шаблона и собственный аргумент шаблона содержат типы с одинаковыми именами; как я могу ссылаться на второй в сигнатуре функции?

Рассмотрим этот код: template<typename T> struct Foo { typedef T t_type; }; template<typename T> struct Bar { typedef T t_type; }; template<typename U> auto f() -> typename U::t_type::t_type { return typename U::t_type::t_type()…
3 ответа

Инициализация нуля массива C++: это ошибка или это правильно?

Примечание. Мы говорим о (предположительно) C++98-совместимых компиляторах здесь. Это не вопрос C++11. У нас странное поведение в одном из наших компиляторов, и мы не уверены, что это нормально или это ошибка компилятора: // This struct has a defaul…
19 авг '13 в 07:58
1 ответ

Неоднозначность в перегрузке конструктора из-за std::function

Я хочу сделать две перегрузки конструктора некоторого класса следующим образом: foo(int, std::function<int(Tpoint, Tpoint)>); foo(int, std::function<int(Tpoint, Tpoint, std::vector<Tpoint>)>); При звонке у меня возникла проблема не…
1 ответ

Почему gcc и clang выдают разные результаты для этой программы? (оператор преобразования против конструктора)

Программа: #include <stdio.h> struct bar_t { int value; template<typename T> bar_t (const T& t) : value { t } {} // edit: You can uncomment these if your compiler supports // guaranteed copy elision (c++17). Either way, it // doesn't…
18 май '17 в 22:07
3 ответа

Почему SFINAE портится при изменении места специализации шаблона класса? Это ошибка C++?

Следующий код дает ожидаемую ошибку компилятора ( Демо): 1 template<bool> struct Range; 2 3 template<int value, typename = Range<true> > struct Unique; 4 template<int value> struct Unique<value, Range<(value > 1)>…
3 ответа

Стандартное поведение препроцессора C++

Я изучаю стандарт C++ на точное поведение препроцессора (мне нужно реализовать какой-то препроцессор C++). Из того, что я понимаю, приведенный ниже пример (чтобы помочь моему пониманию) должен быть верным: #define dds(x) f(x, #define f(a,b) a+b dds(…
1 ответ

Почему этот код на Haskell работает медленнее с -O?

Этот фрагмент кода на Haskell работает намного медленнее -O, но -O должен быть неопасным. Кто-нибудь может сказать мне, что случилось? Если это имеет значение, это попытка решить эту проблему, и она использует бинарный поиск и постоянное дерево сегм…
02 апр '15 в 02:29
0 ответов

Возможная ошибка компилятора Visual Studio C++? Проблема с нетиповым параметром шаблона

Новый вопрос редактировать Эта ошибка, кажется, такая же, как эта: MSVC отклоняет следующий код: template <template <typename T, typename T::mytype x> class X> struct z {}; template <typename T, typename T::mytype xx> struct x {}; …
31 июл '14 в 21:27
3 ответа

Строковая интерполяция: ошибка в компиляторе C#?

string Test(bool @bool) => $"you're {@bool?"hired":"fired"} Have a nice day!"; Приведенный выше код приводит к ошибке компиляции. Но почему? Заметить, что string test = $"this {"is"} working";работает.
09 дек '18 в 10:14
1 ответ

Это ошибка в зависимом разрешении имен в MSVC?

На cppreference.com в качестве примера представлен следующий код, объясняющий разрешение зависимых имен: #include <iostream> void g(double) { std::cout << "g(double)\n"; } template<class T> struct S { void f() const { g(1); // "g" …
08 июн '16 в 12:59
2 ответа

Почему общие и неуниверсальные структуры обрабатываются по-разному при построении выражения, которое поднимает оператор == до нуля?

Это похоже на ошибку при поднятии до нуля операндов на общих структурах. Рассмотрим следующую фиктивную структуру, которая переопределяет operator==: struct MyStruct { private readonly int _value; public MyStruct(int val) { this._value = val; } publ…
28 май '13 в 17:18
1 ответ

VC++ SFINAE выдает ошибку C2070: "перегруженная функция": недопустимый размер операнда

Природа ошибки отличается от упомянутой в этой теме.Я пытаюсь реализовать способ SFINAE в среде VC++, которая находит, содержит ли класс член (метод) или нет. Ниже приведен упрощенный код для этого: template<typename Class> class HasMember_Met…
07 янв '14 в 12:33
1 ответ

Как значение, возвращаемое лямбда-выражением при использовании статической локальной ошибки в MSVC2017 15.9.3 с /std: C++17?

Приведенный ниже пример кода печатает значения из лямбда-функции, которая просто увеличивает и возвращает значение статической переменной локального счетчика. Это печатает 0,1 а также 2,3 как и ожидалось с gcc и clang с C++17. Но не в Visual Studio …
2 ответа

Серьезные ошибки с поднятыми / обнуляемыми преобразованиями из int, позволяющими преобразование из десятичного числа

Я думаю, что этот вопрос принесет мне мгновенную славу здесь, на переполнении стека. Предположим, у вас есть следующий тип: // represents a decimal number with at most two decimal places after the period struct NumberFixedPoint2 { decimal number; //…
2 ответа

Возможная ошибка компилятора в Visual C++ 2012 (x86)?

В настоящее время у меня возникают случайные ошибки с плавающей запятой при компиляции для целей x86 с использованием VC++ 11 (CTP Update 1). Посмотрите короткий пример "test.cpp" ниже, и скомпилируйте с помощью: cl /GL /O2 /EHsc test.cpp /link /MAC…
1 ответ

Ошибка компиляции для параметра функции шаблона переменной

Я пытаюсь написать некоторый вспомогательный код переноса параметров, как показано ниже #include <type_traits> #include <string> struct test{}; namespace ns { struct test{}; } template<typename T> struct arg_wrapper; template<&g…
2 ответа

C++11 future.wait_for() всегда возвращает future_status::timeout

У меня есть программа на C++11, которая проверяет, является ли число простым. Есть будущий объект, который программа ожидает, чтобы быть готовым. После завершения программа сообщает, считает ли функция поставщика будущего объекта число простым. // f…
19 июн '14 в 07:26