kat::C/C++, kat::Miniblog, kat::Moje projekty, kat::Programowanie

post–>Data(12, "września", 2011).Poziom(1).Komentuj();

Na te wakacje zaplanowałem ukończyć tree_template (który od ostatnich dwóch commitów nosi nazwę data_tree) i nawet istnieje prawdopodobieństwo że to mi się uda - muszę się tylko sprężyć w te ostatnie 3 tygodnie. Biorąc pod uwagę przedział czasowy w którym projekt się rozwijał, zamiast klona boost::property_tree powinienem mieć już uniwersalną, całkowicie przenośną, powszechnie używaną (oraz chwaloną), relacyjną bazę danych ale wyszło (a nawet jeszcze nie) jak wyszło.

Deadline: 01-10-11.

kat::Artykuły, kat::C/C++, kat::g++, kat::Programowanie, kat::The Bug

post–>Data(11, "lipca", 2011).Poziom(1).Komentuj();

Tytułowy błąd najczęściej występuje gdy kompilator (a dokładniej linker) nie może znaleźć odpowiedniego symbolu (YYY) do wstawienia w miejsce wywołania, które z kolei znajduje się najczęściej (jak łatwo zgadnąć) w funkcji XXX.

Czytaj_dalej()

kat::C/C++, kat::Miniblog, kat::Ogólne, kat::Programowanie

post–>Data(12, "grudnia", 2010).Poziom(1).Komentuj();

Od jakiegoś czasu staram się tłumaczyć na polski dość ciekawą stronę zawierającą opis standardowych bibliotek C/C++ oraz kilka drobnych informacji na temat języków - cppreference.com. Strona jest lekka i posiada ładnie podzielone kategorie - przydaje się w przypadku nauki STLa, ale też gdy zapomnę argumentów funkcji/szablonu.

Dzisiaj przetłumaczyłem stronę o preprocesorze - cppreference.com/preprocessor.

Zachęcam do lektury :)

kat::C/C++, kat::Moje projekty, kat::Programowanie

post–>Data(05, "sierpnia", 2010).Poziom(1).Komentuj();

W ramach przepisywania tree_template napisałem już dwie całkiem uniwersalne (moim zdaniem) klasy: text_path (opartą na std::string) oraz basic_path (będąca klasą bazową text_path. Obie struktury są kontenerami (szablonami) opartymi na std::list, oraz służą do przechowywania elementów ścieżek, które są zwykle tekstowymi nazwami kolejnych katalogów/gałęzi ale także mogą być dowolnego typu (basic_path).

Klasy czekają jeszcze na napisanie testów jednostkowych, jednak kilka szybkich testów (z którymi poprzednia implementacja nie dawała sobie rady) dało wyniki pozytywne.

W tej chwili tree_template jest... lekko mówiąc: reorganizowany. Wykorzystanie w/w klas wymaga zmian praktycznie w całym kodzie tree (opartym o metodę parsującą ścieżki) i zastanawiam się nad napisaniem go na nowo, jednak z drugiej strony poprzedni kod zawiera kilka przydatnych funkcji które mogą okazać się kiedyś przydatne... W razie potrzeby będę próbował przywrócić starą wersję z archiwum mercuriala.

kat::C/C++, kat::Miniblog, kat::Moje projekty, kat::Programowanie

post–>Data(15, "grudnia", 2009).Poziom(1).Komentuj();

No i mam dylemat. Zdaje się że boost::property_tree dość wydajnie pokrywa funkcjonalność tree_template, mimo że jego zastosowaniem zdaje się być składowanie danych konfiguracyjnych.

Mam do wyboru porzucić projekt i spróbować napisać coś innego (większego) ciągle bez doświadczenia. Albo wbrew wszystkiemu reimplementować pomysł już chyba dla samej satysfakcji.

Programistyczna logika każe wykorzystywać to co już zostało napisane (i działa), jednak z drugiej strony... zaawansowanie prac, doświadczenie, a nawet sentyment każą mi zostać przy tree_template.