Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v changelogu.
Bylo oznámeno, že Qualcomm kupuje Arduino. Současně byla představena nová deska Arduino UNO Q se dvěma čipy: MPU Qualcomm Dragonwing QRB2210, na kterém může běžet Linux, a MCU STM32U585 a vývojové prostředí Arduino App Lab.
Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.14.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.
Byla vydána nová stabilní verze 6.10 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.
Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.
Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.
Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.
Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.
Byla vydána nová verze 10.1 sady aplikací pro SSH komunikaci OpenSSH. Uživatel je nově varován, když se nepoužívá postkvantovou výměnu klíčů.
ts *ts1 = new ts();
Akurát že toto dáva pointer, ak sa nemýlim. Následne môžem urobiť toto:
ts tsobj1=*ts1;
toto už je samotný objekt (neviem či sa vyjadrujem správne)
Otázka je či je to možné urobiť v jednom kroku. Skušal som tak náhodne rôzne varianty a nikdy to neprešlo :)
Ďakujem
PS: domáca uloha to nie je...
ts tsobj1 = ts();
ts tsobj1;Na halde bych urcite nevytvarel objekt pomoci operatoru new, ale pomoci smart pointeru takto: Do headeru dej:
typedef std::shared_ptr<ts> TsPtr;do kodu:
TsPtr tsptr = std::make_shared(); tsptr->doSomething();
const TsPtr tsptr = std::make_shared();To neznamena, ze objekt za pointrem je konstantni! Konstantni je pouze pointer. Presne: konstantni pointer na nekonstantni objekt. Je dobrym zvykem davat const vsude kde to jde, a az casem pripadne odebirat. Zpetne se const do komplikovaneho kodu spatne pridava...
ts tsobj1;
Veľká vdaka, a vďaka aj ostatným, lebo celý tento thread bol veľmi poučný :)
ts tsobj1 = ts();
Vytvoril jsi temporary object na prave strane, ktery se hned zkopiruje do objektu na leve strane. Temporary objekt nasledne zanikne, protoze na nej nevedou zadne reference. Pokud by kopirovani byla draha operace, tak zbytecne plytvas prostredky. Muzes ale implementovat metodu ts& ts::operator=(const ts& other)
, ktera nebude provadet kopirovani, ale napr. swapnuti.
ts& tsobj1 = ts();
Tak se nebude kopirovat cely temporary objekt z prave strany, ale jen reference na nej. Tim prodlouzis zivot temporary objektu, ktery bude existovat tak dlouho, dokud nepujde tsobj1 out-of-scope.
const ts&
, ale rvalue reference ts&&
. Nicméně podle toho, na co se tazatel ptá, bych se do těchhle optimalizací zatím nepouštěl :)
Tiskni
Sdílej: