Заблокирован
|
||||||
1 | ||||||
Баг компилятора? Или я чего то не догоняю?08.11.2011, 20:36. Просмотров 2252. Ответов 33
Метки нет Все метки)
(
Компилил в 2008 студии. Вопрос: ПОЧЕМУ ЭТОТ КОД КОМПИЛИРУЕТСЯ?
Данный код не мой. Случайно нашёл в интернете. Заинтриговало. Решил поделится с народом.
0
|
|
08.11.2011, 20:36 | |
Баг компилятора или я чего-то не понимаю? std::regex : баг на сайте или баг компилятора? Баг компилятора или я дурак? Мистическая ошибка или баг компилятора? |
|
363 / 364 / 167
Регистрация: 11.06.2010
Сообщений: 703
|
|
08.11.2011, 21:05 | 5 |
0
|
4851 / 3272 / 466
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
09.11.2011, 04:43 | 7 | |||||
0
|
113 / 113 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
||||||
09.11.2011, 19:14 | 8 | |||||
И никто не заметил, что код не логичный ну совсем. Одну строчку ТС забыл скопировать.
0
|
3 / 3 / 2
Регистрация: 06.11.2011
Сообщений: 38
|
|
09.11.2011, 19:35 | 10 |
Хм... а вот gcc ругнулся, что оператор = объявлен как private.
0
|
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
|
|
09.11.2011, 19:58 | 12 |
Видимо не проводится полная проверка типов. Скорее всего просто копируется ссылка на объект. Интересно было бы что нибудь туда записать, а потом вывести
![]() Добавлено через 4 минуты А приватный оператор не используется, ибо приватный ![]()
0
|
Заблокирован
|
||||||
09.11.2011, 20:01 [ТС] | 13 | |||||
Прекрасно компилируется:
1. Дефолтные операторы не создаются, если определены пользовательские. 2. Именно приватный и срабатывает.
0
|
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
|
|
09.11.2011, 20:06 | 14 |
Так должно быть, по идее, но никто не гарантирует, что так оно и есть.
Но если по дебагу работает именно приватный, то тогда не знаю.
0
|
Модератор
![]() ![]() ![]() ![]() 10898 / 6814 / 1623
Регистрация: 25.07.2009
Сообщений: 12,519
|
|
09.11.2011, 20:06 | 15 |
0
|
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
|
|
09.11.2011, 20:09 | 17 |
Кстати в 2010 тоже компилится код, хоть и ИДЕ выделяет ошибку в тексте... Думаю, надо у мелкомягких спрашивать.
0
|
Модератор
![]() ![]() ![]() ![]() 10898 / 6814 / 1623
Регистрация: 25.07.2009
Сообщений: 12,519
|
|
09.11.2011, 20:11 | 18 |
В таком виде студия компилирует, gcc ругается.
Код
C:\c_cpp\shitcode>cl bers_bee.cpp Оптимизирующий 32-разрядный компилятор Microsoft (R) C/C++ версии 15.00.30729.01 для 80x86 (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены. bers_bee.cpp Microsoft (R) Incremental Linker Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. /out:bers_bee.exe bers_bee.obj C:\c_cpp\shitcode>g++ -o bers_bee bers_bee.cpp bers_bee.cpp: In function 'int main()': bers_bee.cpp:9:10: error: 'Bee<Foo>& Bee<Foo>::operator=(const Bee<Foo2>&) [with Foo2 = float, Foo = int, Bee<Foo> = Bee<int>]' is private bers_bee.cpp:21:12: error: within this context C:\c_cpp\shitcode>
0
|
24 / 24 / 0
Регистрация: 08.09.2010
Сообщений: 136
|
|
09.11.2011, 20:19 | 20 |
Bers,
В общем, писать мелкомягким баг манифест и призвать их к ответу ![]()
0
|
09.11.2011, 20:19 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
От чего зависит размер программы? От компилятора или компоновщика?
Баг компилятора? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |