- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
#include <iostream>
using namespace std;
class Program
{
public:
friend int main()
{
return 0;
}
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+38
#include <iostream>
using namespace std;
class Program
{
public:
friend int main()
{
return 0;
}
};
Мой знакомый говорит, что его компилятор поддерживает Java\C#-нотацию точки входа таким образом. И ещё он говорит, что так должно компилироваться по стандарту.
bormand 07.10.2012 15:50 # 0
LispGovno 07.10.2012 16:11 # 0
TarasB 07.10.2012 16:25 # 0
LispGovno 07.10.2012 16:36 # −1
LispGovno 07.10.2012 16:41 # 0
http://ideone.com/pYwA8
TarasB 07.10.2012 16:42 # −1
vse_govno 07.10.2012 16:44 # +4
Они не считаются за static, они существуют в текущем пространстве имен, а не в классе.
bormand 07.10.2012 17:21 # +6
LispGovno 07.10.2012 17:34 # +1
bormand 07.10.2012 17:42 # +1
defecate-plusplus 07.10.2012 18:32 # +2
friend std::ostream & operator << (std::ostream & o, mytype const & m) { ... } сплошь и рядом объявляются прямо в теле класса, в стандарт было незачем лезть
bormand 07.10.2012 18:44 # +1
Просто в своем коде никогда не писал так (выносил оператор наружу). А в чужом коде или не встречалось, или, видимо, не обращал внимания на то, как запилены операторы.
P.S. Лишний раз убеждаюсь, что можно много лет пользоваться с++, и так и не познать его до конца...
LispGovno 07.10.2012 19:19 # −2
Мои: 4-5
defecate-plusplus 07.10.2012 19:23 # +1
bormand 07.10.2012 19:52 # +2
TarasB 07.10.2012 20:31 # +2
defecate-plusplus 07.10.2012 20:45 # +3
TarasB 07.10.2012 21:03 # +2
defecate-plusplus 07.10.2012 21:28 # +3
оксюморон
bormand 07.10.2012 21:45 # +3
defecate-plusplus 07.10.2012 22:09 # +3
pushkoff 11.10.2012 19:33 # 0
guest 12.10.2012 16:28 # +4
pushkoff 12.10.2012 18:20 # 0
guest 12.10.2012 18:30 # +3
LispGovno 07.10.2012 23:20 # −3
Причем тут фаллометрия? Я предложил оценить свои знания самостоятельно без всяких тестов. Самооценка так сказать. Вот как вам кажется, на сколько вы знаете, стандарт? Между прочим стандартный вопрос на собеседовании.
absolut 08.10.2012 07:01 # +4
0.5 Русского Стандарта
anonimb84a2f6fd141 08.10.2012 09:46 # 0
rat4 08.10.2012 17:54 # 0
http://www.winebay.ru/userfiles/catalog_items/big/990050_big.jpg
absolut 08.10.2012 20:12 # 0
rat4 08.10.2012 20:21 # +1
http://www.cubisteffects.com/images/RAT/Rat_Header2.jpg
LispGovno 08.10.2012 21:36 # 0
absolut 09.10.2012 09:00 # +3
bormand 09.10.2012 09:36 # +4
Сенсация! Обитатели говнокодика деанонимизировали @rat4! Читать дальше >>>
bormand 10.10.2012 06:21 # +1
[phallometry]Вчера на odesk.com сдал тест по крестам на 3.9 из 5, и сишечку на 4.4 из 5.[/phallometry]
P.S. После теста узнал новый момент в с++:
LispGovno 10.10.2012 07:34 # +3
bormand 10.10.2012 08:29 # +3
Про ловлю по ссылке и указателю я прекрасно знал, и именно они - принцип работы catch в любом языке. А вот то, что catch умеет ловить объекты родительского класса по значению, при этом вызывая конструктор копий... вот эту фичу узнал только вчера.
LispGovno 10.10.2012 08:41 # −3
LispGovno 10.10.2012 10:13 # 0
http://ideone.com/2hJCu
bormand 10.10.2012 11:08 # 0
Я же выше написал что это работает. Потом вы написали что это работает. Потом я написал что это работает, но узнал я только вчера. И тут этот коммент "умеет". Ну не к месту же уже, не к месту.
absolut 10.10.2012 11:58 # 0
bormand 10.10.2012 12:54 # −1
LispGovno 10.10.2012 08:44 # 0
TarasB 10.10.2012 10:18 # −1
absolut 10.10.2012 10:21 # 0
Это ж кресты, если не на стеке, то по воле программера только. Или ОС.
TarasB 10.10.2012 10:24 # 0
absolut 10.10.2012 10:39 # +1
bormand 10.10.2012 11:10 # +4
Почему же, действует. При вбросе по ссылке разрушается объект при выходе из catch блока, который его поймал. При вбросе по значению - сразу же после того как будет создана копия, а копия разрушится после выхода из catch блока. Если же кидать указатель - само собой придется удалять ручками.
P.S. Компилятор может оптимизнуть код, и не делать копию, но RAII работает.
bormand 10.10.2012 11:15 # +1
absolut 10.10.2012 12:04 # +3
Caught
bormand 10.10.2012 12:55 # 0
Мда, надо мне прокачивать инглиш, половина слов и правил уже забылась.
TarasB 10.10.2012 13:11 # +2
bormand 10.10.2012 13:36 # +2
http://ideone.com/jMvyc
Elvenfighter 07.10.2012 23:13 # +2
defecate-plusplus 08.10.2012 00:07 # +2
нет
3.6.1 Main function
/3 ...A program that declares main to be inline or static is ill-formed. ...
LispGovno 08.10.2012 00:20 # +1
>Мой знакомый говорит, что его компилятор поддерживает
Я так понял, этот зубр где-то в 95ых с командой писал "свой" компилятор крестов.
LispGovno 08.10.2012 00:22 # +1
A program that declares main with internal linkage is ill-formed
defecate-plusplus 08.10.2012 00:35 # +2
из абзацев, кишащих implementation-defined, я выудил причину, по которой ОП код не приведет к желаемому результату
LispGovno 08.10.2012 00:47 # +1
Думаю ты хотел сказать delete.
О, да...
А я думал так можно только методы помечать. В чем профит от этого не для методов?
defecate-plusplus 08.10.2012 10:03 # +2
я просто разместил объяву
A program that defines main as deleted or that declares main to be inline, static, or constexpr is ill-formed.
deleted function - это как раз = delete
какое отношение = delete имеет к функциям, а не методам - хоть раздел 8.4.3 Deleted definitions все примеры приводит к методам, думаю, можно вот так:
хоть на говнокодике новый стандарт поизучаю :)
TarasB 08.10.2012 10:06 # 0
defecate-plusplus 08.10.2012 10:07 # 0
http://ideone.com/UoAvk vs http://ideone.com/jRWe5
LispGovno 08.10.2012 10:13 # +2
defecate-plusplus 08.10.2012 10:18 # +3
TarasB 08.10.2012 10:28 # −2
defecate-plusplus 08.10.2012 10:31 # +3
узнать об ошибке через 3 секунды или через 5 минут при линковке огромного говна, особенно когда он напишет малоинформативное "undefined reference to void f(int) in some_fucking_module.o" даже без указания строки, где оно произошло
TarasB 08.10.2012 10:50 # +1
LispGovno 08.10.2012 10:55 # +1
LispGovno 08.10.2012 10:31 # +1
defecate-plusplus 08.10.2012 10:36 # +6
вторая ступень - гнев к бюрократам в комитете
третья ступень - торг. попытка заключить сделку с судьбой
четвертая ступень - депрессия. отчаяние и ужас, потеря интереса к программированию
пятая ступень - смирение. "Не более 2% людей переживают эту стадию."
LispGovno 08.10.2012 10:40 # +2
defecate-plusplus 08.10.2012 10:43 # +4
eth0 08.10.2012 12:18 # +1
defecate-plusplus 08.10.2012 12:19 # +4
LispGovno 08.10.2012 12:21 # −1
defecate-plusplus 08.10.2012 12:26 # +1
LispGovno 08.10.2012 12:34 # 0
roman-kashitsyn 08.10.2012 12:43 # +3
синонимы: импонент
3.14159265 08.10.2012 16:46 # +3
М.б. апоненты заходили под твоим акком и плюсовали себя.
govnomonad 08.10.2012 11:32 # +2
defecate-plusplus 08.10.2012 11:34 # +2
не нервничайте, больной
absolut 08.10.2012 14:11 # 0
LispGovno 08.10.2012 16:07 # 0
absolut 08.10.2012 16:36 # 0
LispGovno 08.10.2012 16:42 # 0
Psionic 08.10.2012 11:21 # +3
bormand 08.10.2012 12:39 # +3
Steve_Brown 08.10.2012 13:15 # +2
bormand 08.10.2012 13:27 # 0
А ну да, так что такой способ с вызовом члена класса как статика лучше вообще не использовать ;) Соглашения о вызовове все-таки разные, и на каком-то компиляторе обязательно заглючит.
> А вот чтобы вызывать методы класса, нужно сначала создать объект
Извращаться - так по полной:
http://ideone.com/TJ92O
Psionic 08.10.2012 15:55 # +2
Йохохо
guest 02.06.2017 14:54 # 0
<a href=http://farmdirect.ru/shipovnika-sirop-plyus-vitamin-s-otzyvy-instrukcija>Шиповника сироп плюс витамин С - отзывы, инструкция по применению - FarmDirect</a>