Ubuntu 26.10 bude Stonking Stingray (úžasný rejnok).
Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.3.0. S experimentální podporou FLTK 1.4. S příkazem dilloc pro ovládání prohlížeče z příkazové řádky. Vývoj prohlížeče se přesunul z GitHubu na vlastní doménu dillo-browser.org (Git).
Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Vývojáři v přehledu vypíchli vylepšenou instalaci, podporu senzoru okolního světla, úsporu energie, opravy Bluetooth nebo zlepšení audia. Vývoj lze podpořit na Open Collective a GitHub Sponsors.
raylib (Wikipedie), tj. multiplatformní open-source knihovna pro vývoj grafických aplikací a her, byla vydána ve verzi 6.0.
Nové verze AI modelů. Společnost OpenAI představila GPT‑5.5. Společnost DeepSeek představila DeepSeek V4.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 164 (pdf) a Hello World 29 (pdf).
Bylo oznámeno, že webový prohlížeč Opera GX zaměřený na hráče počítačových her je už také na Flathubu and Snapcraftu.
Akcionáři americké mediální společnosti Warner Bros. Discovery dnes schválili převzetí firmy konkurentem Paramount Skydance za zhruba 110 miliard dolarů (téměř 2,3 bilionu Kč). Firmy se na spojení dohodly v únoru. O část společnosti Warner Bros. Discovery dříve usilovala rovněž streamovací platforma Netflix, se svou nabídkou však neuspěla. Transakci ještě budou schvalovat regulační orgány, a to nejen ve Spojených státech, ale také
… více »Canonical vydal (email, blog, YouTube) Ubuntu 26.04 LTS Resolute Raccoon. Přehled novinek v poznámkách k vydání. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 11. vydání s dlouhodobou podporou (LTS).
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) byla vydána v nové verzi 1.26.0. Přehled novinek v příspěvku na blogu.
static const char INFO = 'I';Pokud to správně chápu, jsou dvě možnosti:
static const char INFO;a v cpp souboru potom doplnit
const char INFO = 'I';
/planner.cpp:45: undefined reference to `Action::INFO'V případě druhém hází chybu ostatní jednotky, do kterých hlavičkový soubor dotyčné třídy includuju, konkrétně
error: ‘Action::INFO’ cannot appear in a constant-expressionv příkazu switch jako větvící hodnoty.
Nejsou ty chybove hlasky prohozene?
Spravne reseni je v cpp souboru mit
const char Trida::INFO = 'I';
a linkovat vysledny objektovy soubor ke vsem ktere includuji header.
To bude nejspis tim ze switch nejde pouzit na neco co se neda overit pri kompilaci (on tu hodnotu bude znat az pri linkovani, zejo).
Ta staticka hodnota rovnou v header souboru byva problem kvuli tomu, ze potom existuje tolik instanci te staticke promenne, kolik je uspesnych include toho kodu.
Nezbyva nez bud pouzit ten enum nebo to udelat #define direktivou - kazdopadne ale v hlavickovym souboru.
Vazne se u const doplnuje pro clenske promenne static? To se mi nejak nezda :/. Imho const clenske promenne maji jediny rozdil - lze je inicializovat pouze v inicializacnim bloku konstruktoru, a v kodu je lze pouzit pouze v const kontextu.
S navrhem pouzit enum souhlasim :)
const char foo = 'F';
const se implicitne linkuje jako static, takze je to stejne, jako byste napsal:
static const foo = 'F';
Proto to pri linkovani napise chybu. Duvod proc to tak je, je abyste mohl psat konstanty do hlavickovych souboru, jakasi nahrada za:
#define foo 'F'
enum e {
INFO = 'I' // atd...
};
class Trida {
static const INFO = 'I';
...
do všech cpp, kde to používám? To by mělo být správně, ne? Co je na tom přesně špatně? Nějak se mi nechce věřit, že bych ještě navíc potřeboval extern.
static const char INFO = 'I';
Statická proměnná musí být někde v paměti, proto je třeba ji vytvořit v právě jednom .cpp souboru a tam ji i inicializovat. Jinak by různé soubory includující stejný header nevěděly, kdo ji teda mám ve své paměti.
Jestli to chcete za každou cenu mít jen v .hpp, tak si to definujte jako metodu: const char getINFO(void){ return 'I'; }, to se pak už nikde definovat nemusí, bude z toho inline funkce.
Tiskni
Sdílej: