- 1
- 2
- 3
String testName;
//...
std::swap(testName, _testName);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+15
String testName;
//...
std::swap(testName, _testName);
String из thirdparty-библиотеки, а swap везде в нашем коде. По очевидным причинам получаем подение производительности.
LispGovno 16.03.2013 13:23 # 0
Dummy00001 16.03.2013 19:21 # 0
каждый раз я вижу как народ в С/С++ извращается с ручной оптимизацией строковых операций, я всегда вспоминаю жабу и ее stringbuilder и бенчмарки согласно которым все чики-пыки.
LispGovno 16.03.2013 20:54 # 0
Dummy00001 16.03.2013 20:58 # +1
LispGovno 17.03.2013 00:13 # +2
> работает достаточно быстро
1/0
Мистер Хэнки 17.03.2013 19:52 # +1
TarasB 17.03.2013 20:47 # +3
LispGovno 17.03.2013 22:15 # 0
> раше
guest 22.03.2013 09:26 # 0
ну конечно же
Dummy00001 22.03.2013 11:12 # +4
ага. и гарбадж коллекшн это просто задвиг пойнтера назад.
bormand 22.03.2013 11:50 # +1
Ну да, правда с небольшими дополнениями.
P.S. Кстати, если серьезно, то если объектов выживает мало - это и есть немного копирований и задвиг поинтера назад.
guest 16.03.2013 13:40 # +1
LispGovno 16.03.2013 13:49 # 0
defecate-plusplus 16.03.2013 14:41 # +1
bormand 16.03.2013 19:48 # +1
LispGovno 16.03.2013 20:52 # 0
TarasB 17.03.2013 20:46 # +2
LispGovno 17.03.2013 22:17 # −5
3.14159265 20.03.2013 21:03 # +4
LispGovno 22.03.2013 12:08 # −2
bormand 22.03.2013 12:37 # +1
I think it's impossible.
LispGovno 22.03.2013 12:55 # −2
bormand 22.03.2013 13:55 # 0
Boost manual says: The supplied function and class templates can be used to prevent these problems, as they require a complete type, and cause a compilation error otherwise.
So, it's just compile-time assertion check and nothing more. You can't write a trait for incomplete type detection.
LispGovno 22.03.2013 15:54 # −1
http://liveworkspace.org/code/2dkPlT$46
С какого перепугу SFINAE перестал в gcc работать или он и не работал никогда?
LispGovno 22.03.2013 19:37 # −1
LispGovno 22.03.2013 16:34 # −1
Короче это делается как-то так.
bormand 22.03.2013 18:41 # 0
C++98 standard says: [5.3.3/1 Sizeof] The sizeof operator shall not be applied to an expression that has function or incomplete type, or to an enumeration type before all its enumerators have been declared, or to the parenthesized name of such types, or to an lvalue that designates a bit-field.
And you are using sizeof(T) in True1. So...
LispGovno 22.03.2013 18:46 # 0
bormand 22.03.2013 18:50 # 0
Емнип SFINAE работает только при некорректности типов, но не значений. А здесь некорректно именно значение, а тип вполне определен.
LispGovno 22.03.2013 19:36 # 0
Дифолтные аргументы часть инстанцирования самого шаблона. В бусте нечто подобное местами встречается.
defecate-plusplus 22.03.2013 14:16 # +3
LispGovno 22.03.2013 14:58 # −4
roman-kashitsyn 22.03.2013 15:08 # +6
defecate-plusplus 22.03.2013 15:12 # +6
bormand 22.03.2013 15:15 # +7
bormand 22.03.2013 15:13 # +2
Lisp govno tense.
Мистер Хэнки 16.03.2013 19:30 # 0
уже одно это эпично
LispGovno 17.03.2013 10:19 # 0
Мистер Хэнки 18.03.2013 13:08 # +1
roman-kashitsyn 18.03.2013 13:23 # 0
bormand 18.03.2013 14:57 # 0