
плюсач, продолжаю тему пимплов и прочего ускорения компиляции за счёт forward declarations. если функция-фабрика создаёт объект, то должна ли она возвращать умный указатель, или же достаточно простого пойнтера? как велит твоё чуйство прекрасного?
плюсач, продолжаю тему пимплов и прочего ускорения компиляции за счёт forward declarations. если функция-фабрика создаёт объект, то должна ли она возвращать умный указатель, или же достаточно простого пойнтера? как велит твоё чуйство прекрасного?
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битной винде, скачать на линуху, проверить под вайном. именно так и постигается благодатность
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