Вычисление строкового хэша в compile-time Dec 15, 2008
Довольно забавная техника, хотя и не новая… Оригинал взят отсюда.
namespace hash {
// generice type, no implementaion
template<typename CharType> struct retval;
// specialization for char
template<>
struct retval<char> {
typedef char char_type;
typedef unsigned long size_type;
retval(size_type v=0) : v_(v) {}
operator size_type () { return v_;}
size_type v_;
};
template<>
struct retval …GZIP-упаковка/распаковка в памяти Nov 25, 2008
Для выполнения операций упаковки/распаковки данных прямо в памяти, можно использовать бесплатную библиотеку zlib (формат получаемых данных совместим с gzip).
Ниже приведён исходный текст, демонстрирующий, как это можно сделать.
#include "stdafx.h"
#include "stdio.h"
// подключаем zlib в виде dll
#define zlib_dll 1
#include "gzip/GZipHelper.h"
#pragma comment(lib …generating debug information with visual c++ Nov 23, 2008
Откопал довольно интересную статью - вот здесь.
Несколько устаревшая, конечно, но для приведения знаний в систематезированный вид - очень рекомендую.
Рассматриваются виды отладочной инофрмации (в привязке к версиям), производится сравнение и обсуждается вопрос генерации файлов с базой данных приложения.
Использование частей boost в своих проектах Nov 21, 2008
Утащено отсюда.
“Беседуя с разными разработчиками внезапно выяснил, … Как выяснилось, многие из этих разработчиков просто не знают про замечательную утилиту bcp”…
Утилита bcp (она находится в каталоге tools дистрибутива boost) предназначена для копирования частей boost’а в другие проекты, включая все необходимые зависимости. Это позволяет не втягивать в проект полное …
boost::shared_ptr - особенность удаления объектов Nov 20, 2008
Увидал на блоге Raider’a (кстати, рекомендую).
Ситуация:
class A { ... };
class B : public A { ... };
std::vector BunchOfObjects;
BunchOfObjects.push_back(new B);
Главное - не забыть уничтожить удаляемые из контейнера объекты. И если делать это через оператор delete - еще про виртуальный деструктор у базового класса не забыть бы.
Хотя… другое классическое решение …