плюсач, продолжаю тему пимплов и прочего ускорения компиляции за счёт forward declarations. если функция-фабрика создаёт объект, то должна ли она возвращать умный указатель, или же достаточно простого пойнтера? как велит твоё чуйство прекрасного?
*programming
forward декларации, иерархия наследования и ортогональность делают мои хидеры выглядеть как в джаве, это делает меня печальным Гвидо ван Россумом
реквестую книгу Алана Карра «Как перестать хуярить ортогональность и начать писать хидеры длиннее десяти строк?»
плюсоэстеты, каково ваше мнение о forward декларациях структур и классов? используете ли вы только в крайнем случае, или пихаете куда только можно, если это позволяет уменьшить количество #include'ов в заголовочных файлах? кто-нибудь сравнивал скорость компиляции толстых проектов для этих двух подходов?
задумался сегодня днём над преимуществами регистрируемой фабрики над обычным указателем на создающую объект функцию, за 3 секунды не нашёл, сделал указатели на функцию. сейчас стал расширять функционал — осознал что не могу при регистрации забиндить разные доп. параметры к этому указателю.
std::string value = std::string(another.c_str() + pos, n); vs std::string value = std::string(another, pos, n);?
пстащ, вот тут https://github.com/analizer/ubermock/blo... в строках 12-15 сделан адовый хак — грузиться символ мембер-функции из либы, а затем вызывается с ручной передачей this. как это можно сделать работать более человечески?
ещё никогда mock-объекты не были столь простыми и охуенными: https://github.com/analizer/ubermock
действующие лица:
launch — тестируемая либа
main — бинарь эту либу использующий
test — бинарь тестирующий тестируюему либу. т.к. я ленив, то состоит из того же исходника что и main
mock — либа, при линковке которой к ... more →
Как? Как оно определяет когда нужно юзать глибцшный, а когда мою реализацию fopen?
user@host $ cat main.c
#include <stdio.h>
int main() {
printf("%p\n", fopen("",""));
return 0;
}
user@host $ gcc main.c
user@host $ ./a.out
(nil)
user@host $ cat fopen.c
#include <stdio.h>
FILE* fopen(const char* path, const char* ... more →
АААРРГХ! Я осознал наконец, что же меня так тревожило всё это время!
Вот пишешь ты программы, проекты, с новыми модулями и функциями ты приобретаешь новый опыт, с чтением профессиональной литературы, общением с коллегами, собственными изысканиями, ты приобретаешь новые техники, инструменты в работе, меняется твой ... more →
Знаешь, псач, я не умею достигать поставленной цели.
Сегодняшний вечер хотел посвятить продумыванию идеального окружения для тестирования (a.k.a. ubermock), а вместо этого страдал хуйнёй, жрал, ковырялся в gcov, запилил https://github.com/analizer/backtrace (удобный доступ к бэктрейсу) и малость допилил ... more →
а gcov умеет работать в инкрементальном режиме? т.е. один цппшник линкуется двумя бинарями. я запускаю оба, а затем смотрю суммарное его покрытие этими бинарями
и ещё по теме вопрос. mock форсирует наличие vtbl, есть ли техники, которые позволят в релизном билде от этой vtbl избавиться? просто тянуть виртуальные вызовы в высоконагруженный класс только ради тестирования — перебор.
почитал в педивикии про mock. получается что самый нижний уровень API им всё равно не протестировать? или есть возможность заmockить (через LD_PRELOAD скажем) определённые вызовы к glibc
стрёмно, очень стрёмно осознавать, что, написав стройную и элегантную систему, нужно провести скальпелем по этой идиллии, чтобы иметь возможность покрыть её юнит-тестами.
парсинг шестнадцатеричного числа из строки ещё никогда не был так удобен! не упустите свой шанс увеличить свой парсинг на 50 строк всего за один приём! копипастьте http://ideone.com/e4DyA !
оказалось что в гцц нельзя вызвать препроцессорную директиву #line с аргументом большим 32767
внезапно, похоже я отыскал что-то вкусненькое пожамкать^W почитать: http://www.ibm.com/developerworks/linux/...
ящитаю, что у каждого STL-ного контейнера и вообще любого сложного объекта должна быть шаблонная policy, задающая реакцию на неправильное использование объекта, как-то: выход за границы вектора, обращение к front и back пустого контейнера, чтение из файла уже вернувшего EOF или просто неоткрытого. тогда можно будет ... more →
Прочитал цикл статей «RValue References: Moving Forward» by Dave Abrahams. Осознал что я тупой хуй, говно, не_нужен™ и вообще вон-из-профессии.
Хорошей новостью является то что первая статья: http://cpp-next.com/archive/2009/08/want... касается исключительно C++03 и является настолько мощным ... more →
есть прога, в какой то момент делает что-то вроде «fork() > 0 && exit(0);». вопрос: как поставить бряк на строчку следующую сразу после этой? так чтобы дебажить чайлда
критерий годности программы: собрать на 64битной линухе, проверить. собрать на 32битной винде, скачать на линуху, проверить под вайном. именно так и постигается благодатность
*programming is used by:
Hirthwork McGillah
hirthwork
0xd34df00d
0xd34df00d
analizer
analizer
4DA
4da
Mагог Магогович
magog
Minoru
Minoru
gelraen
gelraen
kb
kb
lexszero
lexszero
Cthulhu
Cthulhu
RainerGomes
RainerGomes
desperate donkey
odin
dorfe
dorfe
beardog
beardog
16+
238328
Darth Bricktop
Like-all
Monah Tuk
hatred
jabber
jabber
lovesan
lovesan
Ky6uk
Ky6uk
Apepe Devil
Apepe
Octocat
octocat
Sectoid
Sectoid
Evgeny I. E. Omelchenko
Elemir
Джордж Ричмонд
richmond
asmer
asmer
chemikadze
chemikadze
Crazy_Owl
Crazy_Owl
Вона блює і співає.
ruda
Rejjin
Rejjin
Myp
Myp
der_FeniX
der_FeniX
ClanMax
ClanMax
ʎǝuoɥǝʞɐus
snakehoney
SetazeR
setazer
mva
mva
Michael Pogoda
MPogoda
K900
K900
anonymous_owl
anonymous_owl
Johan
johan
oberon86
oberon86
nstm0
nstm0
Softovick
Softovick
Amberize
Amberize
Kakadu
Kakadu
Александр Марков
komar
13oz
13oz
svtk
svtk
Смерть Неизбежна
lHooFool
Marisa Waller
Marisa
Хотеть!
xotetb
Проба оперения
17eyes
skyw00lf
skyw00lf
Amparo Dios
AmparoDios
Ствол
Dulo_T-34
Kirsche
Kirsche
DOMr
DOMr
Bender Bending Rodríguez
DJm00n
nexeuse
nexeuse
Артс
arts
psymatic
psymatic
Spiritual ecstasy
rapture
няша
generatorglukoff
Maxim Kirenenko
part1zano
taras
taras
профессиональный говноед
ulidtko
ascrazy
ascrazy
hirthwork
0xd34df00d
analizer
4da
magog
Minoru
gelraen
kb
lexszero
Cthulhu
RainerGomes
odin
dorfe
beardog
238328
Like-all
hatred
jabber
lovesan
Ky6uk
Apepe
octocat
Sectoid
Elemir
richmond
asmer
chemikadze
Crazy_Owl
ruda
Rejjin
Myp
der_FeniX
ClanMax
snakehoney
setazer
mva
MPogoda
K900
anonymous_owl
johan
oberon86
nstm0
Softovick
Amberize
Kakadu
komar
13oz
svtk
lHooFool
Marisa
xotetb
17eyes
skyw00lf
AmparoDios
Dulo_T-34
Kirsche
DOMr
DJm00n
nexeuse
arts
psymatic
rapture
generatorglukoff
part1zano
taras
ulidtko
ascrazy