История изменений
Исправление zaz, (текущая версия) :
Маленький пример: simpleq. (Другие там у меня тоже есть.)
Вопрос был удобстве использования, сравните
std::list<int> iList;
iList.inset(1);
iList.clear();
struct IntEntry {
int val;
SIMPLEQ_ENTRY(IntEntry) link;
};
SIMPLEQ_HEAD(iList, IntEntry) iList;
IntEntry *e = malloc(sizeof(IntEntry));
e->val = 1;
SIMPLEQ_INSERT_TAIL(iList, e, link);
while ((e = SIMPLEQ_FIRST(iList)) != NULL) {
SIMPLEQ_REMOVE_HEAD(iList, link);
free(e);
}
Ага, совсем не несёт.
В принципе это очень не много, по хорошему день-два работы + нужно как правило не все а только некоторые структуры + кроме списков там ничего нету (нет ни RB деревьев ни векторов ни строк)
Я не говорю что библиотека безполезная и не нужная, но как по мне на роль «стандартной библиотеки шаблонов для C» она мягко говоря не тянет.
Исходная версия zaz, :
Маленький пример: simpleq. (Другие там у меня тоже есть.)
Вопрос был удобстве использования, сравните
std::list<int> iList;
iList.inset(1);
iList.clear();
struct IntEntry {
int val;
SIMPLEQ_ENTRY(IntEntry) link;
};
SIMPLEQ_HEAD(iList, IntEntry) iList;
IntEntry *e = malloc(sizeof(IntEntry));
e->val = 1;
SIMPLEQ_INSERT_TAIL(iList, e, link);
while ((e = SIMPLEQ_FIRST(iList)) != NULL) {
SIMPLEQ_REMOVE_HEAD(iList, link);
free(e);
}
Ага, совсем не несёт.
В принципе это очень не много, по хорошему день-два работы + нужно как правило не все а только некоторые структуры + кроме списков там ничего нету (нет ни RB деревьев ни векторов ни строк)
Я не говорю что библиотека безполезная и не нужная, но как по мне на роль «стандартной библиотеки шаблонов для C» она мягко говоря не тянет.