Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
NSComponents.h:15: error: ISO C++ forbids declaration of ‘NetSender’ with no type NSComponents.h:15: error: expected ‘;’ before ‘&’ token NSComponents.h:17: error: expected ‘,’ or ‘...’ before ‘&’ token NSComponents.h:17: error: ISO C++ forbids declaration of ‘NetSender’ with no type NetSender.cpp: In constructor ‘cz::wanto::netsender::NetSender::NetSender(int, char**)’: NetSender.cpp:7: error: invalid conversion from ‘cz::wanto::netsender::NetSender* const’ to ‘int’ NetSender.cpp:7: error: initializing argument 1 of ‘cz::wanto::netsender::NSComponents::NSComponents(int)Tady je zdroják třídy NSComponents:
#ifndef W_N_S_COMPONENTS__
#define W_N_S_COMPONENTS__
#include "NetSender.h"
#include <QWidget>
#include <QApplication>
#include <QTextEdit>
namespace cz { namespace wanto { namespace netsender {
class NSComponents {
private:
QTextEdit * output; //textové pole s výstupem
/*řádek 15*/NetSender & ns; //odkaz na aplikaci
public:
/*řádek 17*/NSComponents(const NetSender & ns);
~NSComponents();
friend class NetSender;
};
}}}
#endif
Netušíte někdo, co by to mohlo být za chybu a jak to opravit? Jsem v C++ začátečník, takže vůbec nevím, o co jde.
namespace cz { namespace wanto { namespace netsender {To je hnus velebnosti - to máte z Javy?
Asi ho zjednoduším, ať to vypadá líp.
Tady je NetSender.h:
#ifndef W_NET_SENDER__
#define W_NET_SENDER__
#include <QApplication>
#include "NSComponents.h"
namespace cz { namespace wanto { namespace netsender {
class NetSender {
private:
QApplication * app; //aplikace
NSComponents * comps; //kolekce komponent
public:
NetSender(int argc, char * argv[]);
~NetSender();
int run() const;
friend class NSComponents;
};
}}}
#endif
class NSComponents;Potom pokud si to bude při kompilaci nějakého .cpp souboru stěžovat na neúplný typ, tak v tom dotyčném souboru stačí přidat
#include "NSComponents.h" před #include "NetSender.h"
Pak se do toho pustí přímo hlavní část kompilátoru a uvidí jakési
NetSender & ns;ale pokud se zamyslíte, tak zjistíte, že NetSender je deklarován až pod třídou NSComponents. Musíte tedy zrušit některý z těch #include a místo něj použít zjednodušenou deklaraci.
Musíte tedy zrušit některý z těch #include a místo něj použít zjednodušenou deklaraci.Co je to zjednodušená deklarace?
class NetSender ???
class NetSender;ale musí to být uvnitř toho namespace, ve kterém ta třída potom skutečně je...
Je možné vytvořit si jeden hlavičkový soubor se všemi zjednodušenými deklaracemi, který bych pak na začátku každého souboru includoval?Je, ale neukazuje taková potřeba na příliš složitý návrh programu?
Co kompilátor udělá, když se zjednodušená deklarace vloží dvakrát?Nic.
class X;, nač si to komplikovat.
W_NET_SENDER__ (resp. W_N_S_COMPONENTS__) definován, takže se celý obsah toho hlavičkového souboru přeskočí a nic se nezacyklí.
#include, to nemůžete" je zcela nesprávné, přestože jste tím nejspíš myslel něco úplně jiného, než jste napsal.
this není reference ale ukazatel a už mi to chodí.
Dokonce i to Qt okno se mi otevře
Všem, co mi poradili, moc díky, už jsem si myslel, že tu aplikaci nedodělám.
Tiskni
Sdílej: