Odpovídáte na názor ke článku Minimalistický http server v C++.
Zdravím, děkuji za reakci, následně odpovím na následující námitky
> * funkce deklaruje statické i když jsou v anonymním namespace.
Primárně byly pouze statické, protože je velký rozdíl mezi funkcí v anonymním namespace a funkce statické
1. statické funkce se neexportují
2. funkce v anonymním namespace se exportují ale pod náhodným namespace
(aspoň takto to dělá msvc, nevím jaký je aktuální stav)
Obecně používám pomocné funkce deklarované jako statick. Jednou z výhod také je, že překladač většinou warningem označí funkce, které už nepoužívám.
anonymní namespace byl vložen proto, že některá verze GCC si stěžovala, že deklarace třídy je v cpp souboru (jako warning). Jinak bych to neřešil
> * v C++11 existuje constexpr (autor používá na stringové a číselné konstanty static const )
asi hodně podobné jako u toho static funkce. Před C++11 se to tak běžně psalo. Moc jsem to nesledoval a nevidím v tom velký rozdíl
> * obluda std::pair<std::string_view, std::string_view>[] místo std::map a ještě píše v komentáři, že si to má programátor při úpravě řadit podle abecedy :-D
Ta obluda je rychlejší než std::map, a zabírá méně místa. Běžně používám u staticky alokovaných asociativních polí (slovníků)
> * podivná šablona RAII (pro Socket a FileDesc je lepší vytvořit třídu, když už k nim má stejně nějaké funkce, zbytek stačí std::unique_ptr
Vaše řešení opět znamená, že místo toho, aby deskriptor dál byl uložen v intu, tak ho máte alokovaný v paměti a ještě potřebujete pointer. Nepřijde mi to, že bych si pomocí C++ pomohl. Proč mám pro něco co v C zabírá 8 bajtů alokovat dalších desítek bajtů jen proto, že si neumím napsat jazykovými prostředky třídu, která to zvládne bez toho? A proč je to špatně tak jak to mám já?
> * použití operátoru () v SplitString
Protože SplitString je funktor, který vrací další řetězec v pořadí. Je to efektivnější, než se zaobírat iterátory
Obecně iterační fuktor používám
auto x = a.create_iterator()
while (!!x) {
do_something(x())
}
nezvyklé? Ale dobře se s tím pracuje.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 50 233×
Přečteno 23 535×
Přečteno 22 525×
Přečteno 20 434×
Přečteno 17 495×