Ma chanas tu aig toiseach an dealbh-chluich gu bheil còd C ++ crochte air aâ bhalla, an uairsin aig an deireadh tha e gu bhith gad losgadh sa chas.
Bjarne Stroustrup
Bho 31 DĂ mhair gu 1 Samhain, chaidh co-labhairt C ++ Russia Piter a chumail ann an St. Petersburg - aon de na co-labhairtean prògramadh mòr san Ruis, air a chuir air dòigh le JUG Ru Group. Am measg an luchd-labhairt a fhuair cuireadh tha buill de Chomataidh Inbhean C ++, luchd-labhairt CppCon, Ăšghdaran leabhraichean O'Reilly, agus luchd-gleidhidh phròiseactan leithid LLVM, libc ++, agus Boost. Tha aâ cho-labhairt ag amas air luchd-leasachaidh eòlach C ++ a tha airson an eòlas a dhoimhneachadh agus an eòlasan iomlaid ann an conaltradh beò. Bidh oileanaich, oileanaich ceumnachaidh agus tidsearan oilthigh aâ faighinn lasachaidhean math.
Bidh an deasachadh Moscow den cho-labhairt ri fhaighinn airson tadhal cho trĂ th ris aâ Ghiblean an ath-bhliadhna, ach san eadar-ama innsidh na h-oileanaich againn dhut dè na rudan inntinneach a dhâ ionnsaich iad aig an tachartas mu dheireadh.

Dealbh bho
Mu ar deidhinn
Bha dithis oileanach bho Sgoil Eaconamachd Ărd-ĂŹre an Oilthigh Rannsachaidh NĂ iseanta - St. Petersburg ag obair air an dreuchd seo:
- Tha Liza Vasilenko na h-oileanach fo-cheum 4th bliadhna aâ sgrĂšdadh ChĂ nanan Prògramachaidh mar phĂ irt den phrògram Matamataig GnĂŹomhaichte agus Saidheans Coimpiutaireachd. Ăs deidh dhomh eòlas fhaighinn air aâ chĂ nan C++ anns aâ chiad bhliadhna agam san oilthigh, fhuair mi eòlas Ă s deidh sin ag obair leis tro inntearnasan sa ghnĂŹomhachas. Dhâ fhĂ g an dealas a thâ agam airson cĂ nanan prògramaidh ann am prògramadh coitcheann agus gnĂŹomh gu sònraichte a chomharra air taghadh aithisgean aig aâ cho-labhairt.
- Tha Danya Smirnov na h-oileanach sa chiad bhliadhna de phrògram aâ mhaighstir âPrògramadh agus Mion-sgrĂšdadh DĂ taâ. Fhad âs a bha mi fhathast san sgoil, sgrĂŹobh mi duilgheadasan Olympiad ann an C ++, agus an uairsin thachair dòigh air choireigin gun robh an cĂ nan an-còmhnaidh aâ nochdadh ann an gnĂŹomhan foghlaim agus mu dheireadh thĂ inig i gu bhith na phrĂŹomh chĂ nan obrach. Cho-dhĂšin mi pĂ irt a ghabhail anns aâ cho-labhairt gus mâ eòlas adhartachadh agus cuideachd ionnsachadh mu chothroman Ăšra.
Anns aâ chuairt-litir, bidh ceannardas na dĂ imhe gu tric aâ roinn fiosrachadh mu thachartasan foghlaim co-cheangailte ris an rud sònraichte againn. San t-Sultain chunnaic sinn fiosrachadh mu C ++ An Ruis agus chuir sinn romhainn clĂ radh mar luchd-èisteachd. Seo aâ chiad eòlas a thâ againn air a bhith an sĂ s ann an co-labhairtean mar seo.
Structar co-labhairt
Aithisgean
Thairis air dĂ latha, leugh eòlaichean 30 aithisg, aâ còmhdach mòran de chuspairean teth: cleachdadh innleachdach de fheartan cĂ nain gus fuasgladh fhaighinn air duilgheadasan gnĂŹomhaichte, Ăšrachaidhean cĂ nain a tha ri thighinn an co-cheangal ris an inbhe Ăšr, co-rèiteachadh ann an dealbhadh C ++ agus ceumannan nuair a bhios iad ag obair leis na builean aca, eisimpleirean ailtireachd pròiseict inntinneach, a bharrachd air beagan mion-fhiosrachaidh mun bhun-structar cĂ nain. Chaidh trĂŹ taisbeanaidhean a chumail aig an aon Ă m, mar as trice dhĂ ann an Ruisis agus aon sa Bheurla.
Sònaichean deasbaid
Ăs deidh na h-òraid, chaidh a h-uile ceist nach deach iarraidh agus còmhraidhean neo-chrĂŹochnaichte a ghluasad gu raointean sònraichte airson conaltradh leis an luchd-labhairt, uidheamaichte le bĂšird comharran. Dòigh mhath air am briseadh air falbh eadar òraidean le còmhradh tlachdmhor.
Còmhraidhean dealanach agus còmhraidhean neo-fhoirmeil
Ma tha thu airson aithisg ghoirid a thoirt seachad, faodaidh tu clĂ radh air aâ bhòrd gheal airson an oidhche Lightning Talk agus faigh còig mionaidean de Ăšine airson bruidhinn mu rud sam bith air cuspair na co-labhairt. Mar eisimpleir, ro-rĂ dh sgiobalta air innealan-glanaidh airson C ++ (dha cuid bha e Ăšr) no sgeulachd mu bhiast ann an ginealach tonn sine nach cluinnear ach, ach nach fhaicear.
Is e cruth eile an deasbad panail âWith a Heart to Heart Committee.â Air an Ă rd-Ăšrlar tha cuid de bhuill den chomataidh cunbhalachaidh, tha Ă ite teine ââââair an proiseactair (gu h-oifigeil - gus faireachdainn dĂšrachdach a chruthachadh, ach tha an adhbhar âleis gu bheil a h-uile cĂ il AIR AN TIRE" aâ coimhead nas èibhinn), ceistean mu inbhe agus sealladh coitcheann C ++ , Ă s aonais còmhraidhean teignigeach teasachaidh agus holiwars. Thionndaidh e a-mach gu bheil daoine beò air aâ chomataidh is dòcha nach eil buileach cinnteach mu rudeigin no is dòcha nach eil eòlach air rudeigin.
Airson luchd-leantainn holivars, bha an treas tachartas fhathast air a 'chĂšis - seisean BOF "Go vs. C ++". Gabhaidh sinn leannan Go, leannan C ++, ro thoiseach an t-seisein bidh iad le chèile ag ullachadh 100500 sleamhnag air cuspair (leithid duilgheadasan le pacaidean ann an C ++ no dĂŹth generics ann an Go), agus an uairsin bidh còmhradh beòthail aca eatorra fhèin agus leis an luchd-èisteachd, agus bidh an luchd-èisteachd aâ feuchainn ri dĂ shealladh a thuigsinn aig an aon Ă m. Ma thòisicheas holivar a-mach Ă s aâ cho-theacsa, bidh am modaireatair aâ dol an sĂ s agus aâ rèiteachadh nam pĂ rtaidhean. Tha an cruth seo addictive: grunn uairean a thĂŹde Ă s deidh tòiseachadh, cha deach ach leth de na sleamhnagan a chrĂŹochnachadh. Dh'fheumadh an deireadh a bhith air a luathachadh gu mòr.
Com-pĂ irtiche a 'seasamh
Bha com-pĂ irtichean na co-labhairt air an riochdachadh anns na tallaichean - aig na standan bha iad aâ bruidhinn mu phròiseactan gnĂ thach, aâ tabhann inntearnasan agus cosnadh, aâ cumail ceisteachain agus co-fharpaisean beaga, agus cuideachd aâ cruinneachadh dhuaisean math. Aig an aon Ă m, thairg cuid de chompanaidhean eadhon a dhol tro na ciad ĂŹrean de agallamhan, a dh'fhaodadh a bhith feumail dhaibhsan a thĂ inig chan ann a-mhĂ in airson èisteachd ri aithisgean.
Mion-fhiosrachadh teicnigeach mu na h-aithisgean
Dhâèist sinn ri aithisgean an dĂ latha. Aig amannan bha e duilich aon aithisg a thaghadh bhon fheadhainn co-shĂŹnte - dh'aontaich sinn a bhith a 'roinn agus ag iomlaid an eòlais a fhuair sinn aig Ă m briseadh. Agus eadhon mar sin, tha e coltach gu bheil mòran air fhĂ gail a-mach. An seo bu mhath leinn bruidhinn mu na tha ann an cuid de na h-aithisgean a bâ inntinniche dhuinn
Eisimpleirean ann an C ++ tro phriosma optimizations compiler, Roman Rusyaev

Sleamhnachadh bho
Mar a tha an tiotal aâ moladh, choimhead Ròmanach air a bhith ag obair le eisgeachdan aâ cleachdadh LLVM mar eisimpleir. Aig an aon Ă m, dhaibhsan nach bi aâ cleachdadh Clang nan cuid obrach, faodaidh an aithisg fhathast beagan beachd a thoirt seachad air mar a dhâ fhaodadh an còd a bhith air a mheudachadh. Tha seo air sgĂ th gu bheil luchd-leasachaidh luchd-cruinneachaidh agus leabharlannan Ă bhaisteach co-fhreagarrach aâ conaltradh ri chèile agus faodaidh mòran fhuasglaidhean soirbheachail a bhith aig an aon Ă m.
Mar sin, gus eisgeachd a lĂ imhseachadh, feumaidh tu tòrr rudan a dhèanamh: cuir fios gu còd lĂ imhseachaidh (ma tha sin ann) no goireasan an-asgaidh aig an ĂŹre lĂ ithreach agus snĂŹomh suas an stac nas Ă irde. Tha seo uile aâ ciallachadh gu bheil an neach-cruinneachaidh aâ cur a-steach stiĂšireadh a bharrachd airson fiosan a dhâ fhaodadh eisgeachdan a thilgeil. Mar sin, mura tèid an eisgeachd a thogail, nĂŹ am prògram gnĂŹomhan neo-riatanach fhathast. Gus dòigh air choireigin a lughdachadh, tha grunn heuristics aig LLVM airson a bhith aâ dearbhadh shuidheachaidhean far nach fheumar còd lĂ imhseachaidh eisgeachd a chuir ris no an Ă ireamh de stiĂširidhean âa bharrachdâ a lughdachadh.
Bidh an neach-labhairt aâ sgrĂšdadh timcheall air dusan dhiubh agus aâ sealltainn an dĂ chuid suidheachadh far a bheil iad aâ cuideachadh le bhith aâ luathachadh coileanadh aâ phrògraim, agus an fheadhainn far nach eil na dòighean sin iomchaidh.
Mar sin, tha Roman Rusyaev aâ toirt oileanaich chun aâ cho-dhĂšnaidh nach urrainnear còd anns a bheil lĂ imhseachadh eisgeachd a chuir gu bĂ s an-còmhnaidh le neoni os an cionn, agus aâ toirt seachad aâ chomhairle a leanas:
- nuair a thathar aâ leasachadh leabharlannan, is fhiach e ann am prionnsapal a thrèigsinn eisgeachdan;
- ma tha feum air eisgeachdan fhathast, an uairsin nuair a ghabhas e dèanamh is fhiach mion-atharraichean noexcept (agus const) a chur ris anns a h-uile à ite gus an urrainn don neach-cruinneachaidh an fheum as fheà rr a dhèanamh.
San fharsaingeachd, dhaingnich an neach-labhairt am beachd gu bheil e nas fheà rr eisgeachdan a chleachdadh gu Ïre as Ïsle no an trèigsinn gu tur.
Gheibhear sleamhnagan na h-aithisg aig aâ cheangal a leanas:
Gineadairean, coroutines agus mĂŹlseachd eile a tha aâ gluasad an eanchainn, Adi Shavit

Sleamhnachadh bho
Bha aon de na h-aithisgean aig aâ cho-labhairt seo coisrigte do innleachdan ann an C ++20 cuimhneachail chan ann a-mhĂ in airson an taisbeanadh dathte aige, ach cuideachd airson a bhith ag aithneachadh gu soilleir na duilgheadasan a thâ ann le loidsig giollachd cruinneachaidh (airson lĂšb, fios air ais).
Tha Adi Shavit aâ soilleireachadh na leanas: bidh na dòighean a tha rim faighinn an-drĂ sta aâ dol tron ââââchruinneachadh gu lèir agus chan eil iad aâ toirt cothrom air cuid de staid eadar-mheadhanach a-staigh (no bidh iad a âdèanamh a thaobh fios air ais, ach le Ă ireamh mhòr de bhuaidhean mĂŹ-thlachdmhor, leithid Callback Ifrinn) . Bhiodh e coltach gu bheil luchd-aithris ann, ach eadhon leotha chan eil a h-uile dad cho rèidh: chan eil puingean inntrigidh is fĂ gail cumanta (tòisich â deireadh versus rbegin â rend agus mar sin air adhart), chan eil e soilleir dè cho fada âs a bhios sinn ag aithris? Aâ tòiseachadh le C ++20, tha na duilgheadasan sin air am fuasgladh!
A 'chiad roghainn: raointean. Le bhith aâ pasgadh iterators, gheibh sinn eadar-aghaidh cumanta airson toiseach is deireadh itealain, agus gheibh sinn comas sgrĂŹobhadh cuideachd. Tha seo uile ga dhèanamh furasta pĂŹoban giollachd dĂ ta lĂ n-chuimseach a thogail. Ach chan eil a h-uile dad cho rèidh: tha pĂ irt den loidsig Ă ireamhachaidh suidhichte taobh a-staigh buileachadh iterator sònraichte, a dhâ fhaodas an còd a thuigsinn agus a dheasbad.

Sleamhnachadh bho
Uill, airson a âchĂšis seo, chuir C ++ 20 coroutines ris (gnĂŹomhan aig a bheil giĂšlan coltach ri gineadairean ann am Python): faodar cur gu bĂ s a chuir dheth le bhith aâ tilleadh beagan luach gnĂ thach fhad âs a tha thu aâ gleidheadh ââââstaid eadar-mheadhanach. Mar sin, bidh sinn aâ coileanadh chan ann a-mhĂ in ag obair le dĂ ta mar a tha e aâ nochdadh, ach cuideachd aâ toirt a-steach a h-uile loidsig taobh a-staigh coroutine sònraichte.
Ach tha cuileag anns an acainn: aig an Ă m seo chan eil iad a 'faighinn taic ach gu ĂŹre bho luchd-cruinneachaidh a th' ann mar-thĂ , agus chan eil iad air an cur an gnĂŹomh cho sgiobalta 'sa bu mhath leinn: mar eisimpleir, chan fhiach fhathast iomraidhean agus stuthan sealach a chleachdadh ann an coroutines. A bharrachd air an sin, tha cuid de chuingealachaidhean air dè a dhâ fhaodadh a bhith nan coroutines, agus chan eil gnĂŹomhan constexpr, luchd-togail / luchd-sgrios, agus prĂŹomh fheadhainn air an toirt a-steach don liosta seo.
Mar sin, bidh coroutines aâ fuasgladh pĂ irt chudromach de na duilgheadasan le sĂŹmplidheachd loidsig giollachd dĂ ta, ach tha feum air leasachadh air na gnĂŹomhan gnĂ thach aca.
Stuthan:
- Sleamhnagan bho C ++ Ruis -
C ++ cleasan bho Yandex.Taxi, Anton Polukhin
Anns na gnĂŹomhan proifeasanta agam, uaireannan feumaidh mi rudan dĂŹreach cuideachail a chuir an gnĂŹomh: còmhdach eadar an eadar-aghaidh a-staigh agus API cuid de leabharlann, logadh no parsadh. Anns a 'chĂšis seo, mar as trice chan eil feum air optimization a bharrachd. Ach dè ma thèid na co-phĂ irtean sin a chleachdadh ann an cuid de na seirbheisean as mòr-chòrdte air an RuNet? Ann an suidheachadh mar sin, bidh agad ri terabytes a phròiseasadh gach uair a thĂŹde de logaichean a-mhĂ in! An uairsin tha a h-uile millisecond a âcunntadh agus mar sin feumaidh tu a dhol gu diofar chleasan - bhruidhinn Anton Polukhin mun deidhinn.
Is dòcha gur e an eisimpleir as inntinniche buileachadh aâ phĂ train puing-gu-buileachadh (pimpl).
#include <third_party/json.hpp> //PROBLEMS!
struct Value {
Value() = default;
Value(Value&& other) = default;
Value& operator=(Value&& other) = default;
~Value() = default;
std::size_t Size() const { return data_.size(); }
private:
third_party::Json data_;
};Anns an eisimpleir seo, an-toiseach tha mi airson cuir às do fhaidhlichean cinn leabharlannan taobh a-muigh - cruinnichidh seo nas luaithe, agus faodaidh tu thu fhèin a dhÏon bho chòmhstri ainmean agus mearachdan eile den aon seòrsa.
Ceart gu leòr, ghluais sinn #include chun an fhaidhle .cpp: feumaidh sinn ro-aithris air an API fillte, a bharrachd air std::unique_ptr. A-nis tha cuibhreannan fiÚghantach againn agus rudan mÏ-thlachdmhor eile leithid dà ta sgapte thairis air dòrlach de dhà ta agus geallaidhean nas lugha. std::faodaidhaligned_storage cuideachadh le seo uile.
struct Value {
// ...
private:
using JsonNative = third_party::Json;
const JsonNative* Ptr() const noexcept;
JsonNative* Ptr() noexcept;
constexpr std::size_t kImplSize = 32;
constexpr std::size_t kImplAlign = 8;
std::aligned_storage_t<kImplSize, kImplAlign> data_;
};An aon dhuilgheadas: feumaidh tu meud agus co-thaobhadh a shònrachadh airson gach còmhdach - dèanamaid ar teamplaid pimpl le paramadairean , cleachd cuid de luachan neo-riaghailteach agus cuir seic ris an sgriosadair gun dâ fhuair sinn a h-uile cĂ il ceart:
~FastPimpl() noexcept {
validate<sizeof(T), alignof(T)>();
Ptr()->~T();
}
template <std::size_t ActualSize, std::size_t ActualAlignment>
static void validate() noexcept {
static_assert(
Size == ActualSize,
"Size and sizeof(T) mismatch"
);
static_assert(
Alignment == ActualAlignment,
"Alignment and alignof(T) mismatch"
);
}Leis gu bheil T air a mhĂŹneachadh mar-thĂ nuair a thathar aâ giullachd an destructor, thèid an còd seo a pharsadh gu ceart agus aig an ĂŹre cruinneachaidh bheir e a-mach na luachan meud is co-thaobhadh riatanach a dhâ fheumar a chuir a-steach mar mhearachdan. Mar sin, aig cosgais aon ruith cruinneachaidh a bharrachd, gheibh sinn cuidhteas an riarachadh fiĂšghantach de chlasaichean fillte, cuir am falach an API ann am faidhle .cpp leis aâ bhuileachadh, agus gheibh sinn dealbhadh a tha nas freagarraiche airson tasgadh leis aâ phròiseasar.
Cha robh coltas cho drÚidhteach air logadh is parsadh agus mar sin cha tèid iomradh a thoirt air san ath-bhreithneachadh seo.
Gheibhear sleamhnagan na h-aithisg aig aâ cheangal a leanas:
Dòighean Úr-nodha airson do chòd a chumail TRY, BjÜrn Fahller
Anns an òraid seo, tha BjĂśrn Fahller aâ sealltainn grunn dhòighean eadar-dhealaichte gus cuir an-aghaidh an locht stoidhle a thâ ann an ath-sgrĂšdaidhean staid:
assert(a == IDLE || a == CONNECTED || a == DISCONNECTED);Fuaim eòlach? Le bhith aâ cleachdadh grunn dhòighean cumhachdach C ++ a chaidh a thoirt a-steach ann an inbhean o chionn ghoirid, faodaidh tu an aon ghnĂŹomhachd a chuir an gnĂŹomh gu grinn gun pheanas coileanaidh sam bith. Dèan coimeas:
assert(a == any_of(IDLE, CONNECTED, DISCONNECTED));Gus Ă ireamh neo-stèidhichte de sgrĂšdaidhean a lĂ imhseachadh, feumaidh tu sa bhad teamplaidean eadar-dhealaichte agus abairtean fillte a chleachdadh. Gabhamaid ris gu bheil sinn airson sgrĂšdadh a dhèanamh air co-ionannachd grunn chaochladairean ri eileamaid state_type an enum. Is e aâ chiad rud a thig gu inntinn gnĂŹomh cuideachaidh a sgrĂŹobhadh is_any_of:
enum state_type { IDLE, CONNECTED, DISCONNECTED };
template <typename ... Ts>
bool is_any_of(state_type s, const Ts& ... ts) {
return ((s == ts) || ...);
}
Tha an toradh eadar-mheadhanach seo na bhriseadh dĂšil. Gu ruige seo chan eil an còd aâ fĂ s nas leughaidh:
assert(is_any_of(state, IDLE, DISCONNECTING, DISCONNECTED)); Cuidichidh paramadairean teamplaid neo-sheòrsa gus an suidheachadh a leasachadh beagan. Le an cuideachadh, gluaisidh sinn na h-eileamaidean à ireamhach den enum gu liosta paramadairean teamplaid:
template <state_type ... states>
bool is_any_of(state_type t) {
return ((t == states) | ...);
}
assert(is_any_of<IDLE, DISCONNECTING, DISCONNECTED>(state)); Le bhith aâ cleachdadh auto ann am paramadair teamplaid neo-sheòrsa (C ++17), tha an dòigh-obrach dĂŹreach aâ dèanamh coimeas ri coimeasan chan ann a-mhĂ in le eileamaidean state_type, ach cuideachd le seòrsachan prĂŹomhadail a ghabhas cleachdadh mar pharaimearan teamplaid neo-sheòrsa:
template <auto ... alternatives, typename T>
bool is_any_of(const T& t) {
return ((t == alternatives) | ...);
}Tro na leasachaidhean leantainneach seo, tha an co-chòrdadh fileanta airson sgrÚdaidhean air a choileanadh:
template <class ... Ts>
struct any_of : private std::tuple<Ts ...> {
// пОНониПŃŃ Đ¸ ŃнаŃНодŃоП кОнŃŃŃŃĐşŃĐžŃŃ ĐžŃ tuple
using std::tuple<Ts ...>::tuple;
template <typename T>
bool operator ==(const T& t) const {
return std::apply(
[&t](const auto& ... ts) {
return ((ts == t) || ...);
},
static_cast<const std::tuple<Ts ...>&>(*this));
}
};
template <class ... Ts>
any_of(Ts ...) -> any_of<Ts ... >;
assert(any_of(IDLE, DISCONNECTING, DISCONNECTED) == state);
Anns an eisimpleir seo, tha an iĂšl lĂšghdachaidh aâ moladh na crĂŹochan teamplaid structar a tha thu ag iarraidh don neach-cruinneachaidh, aig a bheil eòlas air na seòrsaichean argamaidean neach-togail.
Nas fhaide - nas inntinniche. Bidh Bjorn aâ teagasg mar as urrainn dhut an còd a thig gu buil airson gnĂŹomhaichean coimeas nas fhaide na ==, agus an uairsin airson gnĂŹomhachd neo-riaghailteach. Air an t-slighe, tha feartan leithid feart no_unique_address (C ++20) agus paramadairean teamplaid ann an gnĂŹomhan lambda (C ++20) air am mĂŹneachadh aâ cleachdadh eisimpleirean cleachdaidh. (Tha, a-nis tha co-chòrdadh lambda eadhon nas fhasa a chuimhneachadh - is iad sin ceithir paidhrichean leantainneach de bhratagan de gach seòrsa). calculus.
Aig a 'cheann thall, na dĂŹ-chuimhnich a sgioblachadh:
- Cuimhnich gu bheil lambdas saor an-asgaidh;
- Nach cuir sinn air adhart foirfe agus coimhead air a cho-chòrdadh grĂ nda a thaobh aâ phasgan paramadair ann an dĂšnadh lambda;
- Bheir sinn barrachd chothroman don neach-cruinneachaidh airson optimizations le gun chumhachan;
- Bheir sinn aire do thoraidhean mearachd nas so-thuigsinn ann an teamplaidean le taing do luachan tilleadh soilleir lambdas. Bheir seo air an neach-cruinneachaidh barrachd sgrÚdaidhean a dhèanamh mus tèid gnÏomh an teamplaid a ghairm - aig Ïre sgrÚdaidh seòrsa.
Airson mion-fhiosrachadh, thoir sÚil air na stuthan òraid:
- Dèan aithris air sleamhnagan:
Ar beachdan
Bha aâ chiad chom-pĂ irteachadh againn ann an C ++ na Ruis cuimhneachail airson cho dian sa bha e. Fhuair mi beachd air C ++ na Ruis mar thachartas dĂšrachdach, far a bheil an loidhne eadar trèanadh agus conaltradh beò cha mhòr do-fhaicsinneach. Tha a h-uile dad, bho fhaireachdainn an luchd-labhairt gu na co-fharpaisean bho chom-pĂ irtichean an tachartais, cuideachail airson còmhraidhean teasachaidh. Tha susbaint na co-labhairt, anns a bheil aithisgean, aâ còmhdach raon farsaing de chuspairean aâ toirt a-steach innleachdan C ++, sgrĂšdaidhean cĂšise air pròiseactan mòra agus beachdachadh air ailtireachd ideòlach. Ach bhiodh e mĂŹ-chothromach dearmad a dhèanamh air pĂ irt shòisealta an tachartais, a chuidicheas le bhith aâ faighinn thairis air cnapan-starra cĂ nain a thaobh chan ann a-mhĂ in ri C ++.
Tha sinn aâ toirt taing do luchd-eagrachaidh na co-labhairt airson an cothrom pĂ irt a ghabhail ann an tachartas mar seo!
Is dòcha gu bheil thu air post an luchd-eagrachaidh fhaicinn mun Ă m a dhâ fhalbh, an-diugh agus an Ă m ri teachd aig C ++ na Ruis .
Tapadh leibh airson leughadh, agus tha sinn an dòchas gun robh an ath-aithris againn de thachartasan cuideachail!
Source: www.habr.com
