3 czerwca 2009
Kategorie: Microsoft, programowanie | Tagi: script, shell, Windows
komentarze: 1
Windows jak każdy inny system również da się w bardzo łatwy sposób skryptować. Nie wszyscy mają pojecie na ile sposób i możliwości można to robić. To nie tylko babranie się w powłoce systemowej, która niektórym kojarzy się tylko z czasami panowania DOS’a lub przywilej systemów uniksopodobnych. Dlatego w kilku najbliższych notkach przedstawię kilka możliwości i [...]
czytaj całość »
23 maja 2009
Kategorie: programowanie, projekty | Tagi: cmd, IDE, libs, makra, patch, shell, vc
komentarze: 1
Dosyć często używam narzędzie Visual Studio spod linii poleceń, głownie nmake do budowania z wykorzystaniem makefiles. Nieraz jest to bardziej wygodniejsze od odpalania i zabawy w IDE. Standardowo przy odpalaniu Visual Studio 2008 Command Prompt wykonywany jest skrypt vcvarsall.bat, który ustawia środowisko, czyli odpowiednie zmienne środowiskowe, ścieżki… Wszystko fajnie i cacy, ale przy ustawieniach ścieżek [...]
czytaj całość »
25 kwietnia 2009
Kategorie: programowanie | Tagi: algorithm, boost, C++, C++0x, code, predicate
komentarze: 0
Boost.bind to potężne narzędzie, za niedługo zobaczymy je w standardzie, obecnie dostępne w TR1. Dzięki niemu możemy pozbyć się wielu prostych i trywialnych, a także tych trochę bardziej skomplikowanych funktorów, jakie musieliśmy definiować, bo standardowe adaptory funkcyjne z STL są ograniczone. To przez niego z kodu źródłowego xime zniknie kilka predykatów, które zostaną zastąpione jedno-dwu [...]
czytaj całość »
23 kwietnia 2009
Kategorie: programowanie | Tagi: algorithm, C++, code, STL
komentarze: 0
Zbiór gotowych algorytmów z standardowej biblioteki języka C++ jest bardzo użyteczny, o tym nie trzeba długo przekonywać. Choć czasem chcąc wykonać kilka rzeczy, bądź kilka kolejnych algorytmów na tych samych danych, możemy stracić na optymalności, szczególnie jak danych jest wiele, a złożoność algorytmu liniowa. Czasem warto napisać coś dedykowanego, lub połączyć 2 algorytmy, oczywiście na [...]
czytaj całość »
5 kwietnia 2009
Kategorie: programowanie | Tagi: C++, code, eksperymenty, iterator, vc
komentarze: 0
Od wersji 2005 Visual C++ posiada opcje sprawdzania ważności iteratorów. Nie będę tu produkował tekstu opisującego jak to dokładnie działa, na stronach MSDN można znaleźć kilka artykułów na ten temat: Checked Iterators, Debug Iterator Support. W wersji debug aplikacji, program poczęstuje nas assertami, kiedy spróbujemy wykonać jakąś operacje na iteratorze bądź funkcji go wykorzystującej, w [...]
czytaj całość »
1 kwietnia 2009
Kategorie: programowanie | Tagi: algorithm, C++, code, metaprogramowanie, STL
komentarze: 4
Często w programach napisanych w C do pobierania rozmiaru tablic alokowanych przez kompilator na stosie stosuje się prostą konstrukcję z operatorem sizeof, opakowana w makro: #define SizeOfArray(array) sizeof(array) / sizeof(array[0]) W C++ zamiast makra lepiej wykorzystać wzorzec, a wtedy można to przedstawić tak: template<typename T, size_t N> inline size_t SizeOfArray(const T (&)[N]) { return N; [...]
czytaj całość »
18 marca 2009
Kategorie: programowanie | Tagi: C++, code, templates, tree
komentarze: 0
Dziś kilka słów o mojej prostej strukturze TreeLinkedList. Jest to prosta drzewiasta struktura, jak sama nazwa wskazuje można ją sobie wyobrazić jako skrzyżowanie drzewa z listą, a dokładniej to hierarchiczne powiązanie drzewem kilku list, gdzie każda gałąź jest listą elementów, które są kolejnymi gałęziami. Twór ten jest bardzo zbliżony do B-tree, aczkolwiek nie posiada wszystkich [...]
czytaj całość »
10 marca 2009
Kategorie: programowanie | Tagi: array, C++, code, matrix, metaprogramowanie, templates
komentarze: 0
Kiedyś, prawie rok temu kombinowałem coś z dwuwymiarowymi tablicami dynamicznymi. W projekcie xime, lista kontaktów wykorzystuje prostą implementację takowej tablicy opartą na małym rozszerzeniu standardowego wektora. Tablica ta odzwierciedla widoczne w danej chwili w kontrolce elementy, zawiera wskaźniki, bądź proste elementy z wskaźnikami do elementów kontaktów umieszczonych w powiązanym drzewie, coś w stylu B-tree. Idea [...]
czytaj całość »
8 marca 2009
Kategorie: programowanie | Tagi: C++, code, idioms, metaprogramowanie, templates
komentarze: 11
Szablony są bardzo elastycznym elementem języka programowania, a ich wykorzystywanie jest bardzo użyteczne. Użycie ich pozwala redukować i minimalizować pisanie oraz powielanie kodu. Jak wiemy konkretyzacja dla danego typu wykonywana jest tylko do używanych metod w szablonach klas, przez co nie jest generowany niepotrzebny kod. Niestety generowany kod wynikowy jest już nieco rozbudowany. Każda konkretyzacja [...]
czytaj całość »
26 lutego 2009
Kategorie: programowanie | Tagi: algorithm, C++, code, metaprogramowanie, STL
komentarze: 0
Nic nie jest doskonałe, tak samo STL ma swoje braki i przeoczenia. W standardowej bibliotece języka C++ zabrakło bardzo użytecznego algorytmu – copy_if – kopiowania z predykatem. Prawdopodobnie został on usunięty przez przypadek z dostarczanych przez bibliotekę algorytmów generycznych, ale z tego co się orientuję, można znaleźć o nim wzmianki w drafcie nowego standardu – [...]
czytaj całość »