Gespräche über C ++: WP 21, Boost, Konferenzen

Hallo allerseits!


Vor kurzem fand in Nowosibirsk das nächste C ++ Siberia 2019 statt. Die Konferenz hatte eine gemütliche Atmosphäre und viele gute Berichte. Videoaufnahmen von Berichten werden derzeit zur Veröffentlichung vorbereitet. Ich nutzte diese Gelegenheit, um mit zwei unserer häufigen Redner zu sprechen, die selten Konferenzen verpassen und immer hervorragende Berichte abgeben: Anton Polukhin antoshkka und Pavel Filonov.


Anton ist der Vertreter Russlands in ISO bei internationalen Treffen der C ++ - Standardisierungsarbeitsgruppe, Autor mehrerer akzeptierter Vorschläge für den C ++ - Sprachstandard, Boost-Bibliotheken und das Boost C ++ - Anwendungsentwicklungskochbuch.


Pavel ist Entwickler und Forscher bei Kaspersky Lab. Er befasst sich mit der Anwendung von Methoden des maschinellen Lernens, um die Sicherheit von cyber-physischen Systemen zu gewährleisten, und lehrt. Während Sie auf das Video von der Konferenz warten, empfehlen wir Ihnen, das Protokoll unseres Gesprächs zu lesen.



Sergey: Hallo zusammen! Dies ist Sergey Platonov, wir sind jetzt auf der C ++ Siberia Konferenz. Heute sprechen wir mit unseren regulären Rednern - Anton Polukhin und Pavel Filonov. Wie geht es Ihnen?


Pavel: Großartig! Wir sind zurück in Nowosibirsk.


Sergey: Jetzt sitzen wir direkt gegenüber den sibirischen Wäldern.


Pavel: Schöne Aussicht, nette Leute, sehr interessante Themen.


Anton: Und im Moment ist es hier wärmer als in Moskau.


Sergey: Ich möchte heute mit Ihnen über C ++ sprechen, wie seltsam es auch bei einer C ++ - Konferenz klingt. Über verschiedene Dinge. Ich bin zum Beispiel sehr daran interessiert, warum Sie von Moskau nach Nowosibirsk zur Konferenz kommen, und dies ist nicht das erste Mal.


Pavel: Für mich selbst kann ich sagen, dass ich einen Hauptgrund habe - ich erzähle wirklich gerne jemandem etwas. Ich kann es nicht für mich behalten. Wenn ich einerseits etwas Neues erfahre, bezweifle ich immer, ob es wirklich gut und interessant ist. Ich muss den Leuten sagen, wie sie darauf reagieren werden - ob sie spucken oder sie bitten, wiederzukommen. Und gemessen an der Tatsache, dass sie nicht spucken, keine Tomaten werfen, mögen die Leute wahrscheinlich die Dinge, die mit mir platzen. Ich möchte zuhören und darüber diskutieren. Außerdem ist es immer eine Freude, einfach nur zu fahren. Das erste Mal war ich in Nowosibirsk auf der C ++ Sibirien-Konferenz und das zweite Mal auch dort. Einfach so, ich würde nicht hierher kommen.


Anton: Es ist immer interessant, in andere Städte zu reisen. In Nowosibirsk ist es wunderbar, hier ist es wärmer als in Moskau. Nasser Schnee ergießt sich nicht über den Nacken. Ein Plus!


Sergey: Natürlich bin ich unaufrichtig und stelle diese Frage aus einem bestimmten Grund. Ich habe Erinnerungen an die Arbeitsgruppe 21 und wie sie meiner Meinung nach erschien. Ich bin daran interessiert, dem Mann zuzuhören, der es tatsächlich getan hat. Wie kam es, dass Russland jetzt im Ausschuss vertreten ist?


Anton: Es ist in C ++ Russland in St. Petersburg passiert. Ich erinnere mich, dass ich mit meiner Frau Gor Nishanov ( Twitter ), der bereits dort stand, in den Aufzug ging. Mir wurde klar, dass dies eine großartige Möglichkeit ist, um herauszufinden, wie man in das internationale Normungskomitee kommt. Eigentlich habe ich ihn danach gefragt. Und Gore ist so: „Weißt du, heute bist du weit davon entfernt, mir diese Frage zu stellen. Leute von Yandex sind auf dich zugekommen. “ Ich antworte, dass ich für kurze Zeit bei Yandex gearbeitet habe und bat darum zu beschreiben, wie diese Leute aussahen - ich werde mich auch an sie wenden. Gore hat mir alles erzählt. Ich ging zu den Leuten, die er beschrieb. Und es stellte sich wirklich heraus, dass Yandex eine Art Arbeitsgruppe einrichten würde, um mit C ++ Schritt zu halten und die Interessen russischer Entwickler in einem internationalen Komitee zu vertreten. Die Gruppe wurde erstellt. Es gibt nicht nur Yandex-Mitarbeiter, sondern auch Mitarbeiter anderer Unternehmen.


Pavel: Jetzt arbeitet Anton Bikineev vom Kaspersky Lab als Mitglied der Gruppe auch dort. Heute ist er leider nicht bei uns.


Anton: Übrigens macht Anton eine sehr coole Sache - er ist mit Armen und Beinen in das Innere des Compilers geklettert und versucht, einen unserer Vorschläge umzusetzen. Er hat sogar einen mehr oder weniger funktionierenden Prototyp.


Pavel: Übrigens beschwert er sich über Sie, dass Sie Vorschläge schneller schreiben, als er es schafft, sie im Compiler zu implementieren.


Anton: Ja, das ist es.


Sergey: Das heißt, Anton Bikineev fungiert hier als eine solche Kerngruppe unserer Arbeitsgruppe? Es ist gut zu hören, dass Konferenzen daran beteiligt waren. Ich hoffe, jeder versteht, wie nützlich und interessant das ist. Es stellt sich heraus, dass Sie nicht in Yandex arbeiten müssen, um in die Arbeitsgruppe zu gelangen?


Anton: Im Allgemeinen ist es nicht erforderlich, Teil einer Arbeitsgruppe zu sein, um Ihre Idee an das C ++ - Standardisierungskomitee weiterzuleiten oder überhaupt Teil der Pluspunkte zu werden.


Pavel: Anscheinend können Sie einfach auf die Website gehen und Ihren Vorschlag hinterlassen.


Anton: Ja, unter https://stdcpp.ru . Dort können Sie die Idee teilen, die Ideen anderer Teilnehmer diskutieren. Es gibt viele Ideen, aber nicht genug Hände, um alles zu übernehmen. Wenn eine Person kommt und anfängt, bestimmte Entwürfe von mindestens einigen Vorschlägen für Ideen zu schreiben, wird dies für alle einfacher, und diese Ideen gelangen schnell zum Ausschuss.


Pavel: Was denkst du, Anton, in welchem ​​Vorschlag oder in etwas anderem wird der größte Beitrag der Arbeitsgruppe zum Ausdruck gebracht?


Anton: Wir haben eine Richtung für alle statischen Reflexionen in den Profis gemacht. Wie ich mich jetzt erinnere: Es gab einen Vorschlag, constexpr_vector zu constexpr_vector - eine separate Klasse, die nur in einem constexpr-Kontext verwendet werden kann. David kommt heraus (David Vandevoorde) und spricht über diese Sache. Die ganze Halle schreit freudig, lass es uns tun. Und er sagt so: „Aber wir wollen alle Klassen in der Standardbibliothek so duplizieren? Kein anderer Weg. " „Vielleicht constexpr_new? "" Nein, es funktioniert nicht. " Und ich bin so: Herausforderung angenommen. Und drei Monate später haben ich und Sasha Zaitsev einen Prototyp erstellt, mit dem std::vector in einem Kontextkontext arbeiten kann. Es funktioniert direkt auf Klirren, selbst im Compiler musste ich nichts spielen. Wir haben es David gezeigt, er sagt: „Ah! Na so? Nein, du hast hier betrogen. “ Wir waren uns einig. Er sagt: „Nein, natürlich kannst du. Übrigens, warum nicht. " Danach warf er das Papier mit constexpr_vector und begann zu arbeiten, damit alle Container der Standardbibliothek den constexpr-Kontext verwenden konnten. Jetzt sind bereits viele Leute da. Wir von der Arbeitsgruppe haben im Grunde alle Algorithmen mit constexpr verpasst, Louis Dion lässt die Container mit constexpr fehlen, und David macht den Kern der Sprache gekonnt zu einer Art constexpr.


Sergey: Geht es um Allokatoren?


Anton: Ja. Bei den Zuweisern gab es ein Problem.


Sergey: Großartig! Dies scheinen große Veränderungen zu sein.


Anton: Noch 6 Jahre, und sie werden im Standard erscheinen ;-)


Pavel: Nein, wahrscheinlich werden wir keine Zeit haben, sie so schnell an unseren Fingerspitzen zu berühren.


Anton: Constexpr-Container sollten im zwanzigsten Standard sein. constexpr Algorithmen treffen definitiv.


Pavel: Das heißt, nur ein paar Jahre?


Sergey: Wenn 2019 jetzt begonnen hat, dann wird der 20. Standard irgendwo im Jahr 2020 sein. Ja, wahrscheinlich ein paar Jahre.


Pavel: Wenn ich mich richtig erinnere, sind Compiler im Vergleich zu Standardautoren immer zurückgeblieben. Jetzt sehe ich oft Versuche, zuerst etwas als Experiment über den Compiler auszuführen - was Anton tut, ist das, was Sie sagen. Und erst dann in Form von Standards.


Sergey: Früher, ich erinnere mich, gab es noch TR.


Anton: Aber sie wurden zugunsten von TS geworfen. Viel hat sich geändert, ja :-)


Sergey: Das heißt, in modernen Compilern können Sie jetzt auch den Namespace ts ?


Anton: Dort wird es jetzt mit Kontrollkästchen mit Erweiterungen des Compilers gemacht, das heißt, es gibt Coroutines TS, die Sie in Clang und Visual Studio ausprobieren können. Es gibt Module TS, und sie sind nicht überall gleich. Es gibt TSs für Bibliotheksmaterial, Multithreading und Networking.


Sergey: Dies ist immer noch der Kern der Sprache mit Allokatoren. Wird dies auch durch ein bestimmtes separates Flag gesetzt?


Anton: Es wird keine separate Flagge gegeben. David (David Vandevoorde) - einer der Compiler-Entwickler, einer der EDG-Front-End-Entwickler, er hat es gerade implementiert. Es wird angenommen, dass dies in Ordnung ist, es bricht nichts, wir wollen keine anderen neuen, etwas ist sinnlos, hier zu experimentieren, alles funktioniert einfach. Großartig, wir ziehen.


Sergey: Sehr cool.


Pavel: Übrigens, zurück zum Thema Konferenzen. Anton, du bist ein häufiger Redner nicht nur in C ++ Russland, sondern nimmst auch an der CPP Con teil, triffst CPP, CPP Jetzt vielleicht noch etwas anderes. Können Sie irgendwie vergleichen und sagen, was Sie den Unterschied sehen? Sind dies dieselben Personen, dieselben Themen oder hat das Gefühl, dass sich je nach Ihrer Bewegung das Thema oder die Arbeitssprache der Konferenz ändert?


Anton: Grundsätzlich gibt es bei Konferenzen in Russland sehr starke Entwickler. Sie können ihnen sehr komplexe Themen erzählen. Ich habe versucht, irgendwo in einer anderen Konferenz ein äußerst schwieriges Thema, magic_get, zu erzählen, und ich erinnere mich an einen Typen, der beim Sprechen nicht mehr auf externe Reize reagierte. Er sitzt nur und blinzelt nicht. Ich dachte, vielleicht kann ich einen Witz einfügen - ich habe ihn eingefügt, scherzte - er blinzelte nicht einmal. Dann kam er herum. Aber es ist wahrscheinlich besser, solchen Hardcore nur hier irgendwo zu erzählen.


Sergey: Und nur an Anton Bikineev . Es ist nur so, dass wir uns gerade beim Abendessen an die Geschichte erinnerten, als Sie bei einem der Treffen über magic_get sprachen.


Pavel: Anton hat an diesem Treffen teilgenommen und Ihnen eine so schwierige Frage gestellt, dass er deutlich über das hinausging, was Sie gesagt haben. Es scheint, dass die Suche in der Liste der Typen nicht linear ist, sondern mit Hilfe der binären Suche. Sie antworteten ihm und fragten, woher er das überhaupt wisse. Zu dem Anton erwähnte, dass er die Quellen von magic_get , das sich auf Ihrem GitHub befindet, die ganze Nacht vor Ihrem Bericht gelesen und versucht hatte, herauszufinden, wie es funktioniert.


Anton: Wir haben eine alte seltsame Geschichte mit Anton Bikineev. Ich habe gesehen, wie er in Boost ein paar Commits gemacht hat, noch bevor wir uns kannten. Und danach sah ich, dass er sowohl in Clang als auch in constexpr eine Pull-Anfrage stellte. Ich sah diese Pull-Anfrage und erinnerte mich aus irgendeinem Grund an den Namen in diesem Moment. Wahrscheinlich, weil der Typ von Boost, der sich für Clang engagiert, großartig ist! Dann spreche ich in C ++ Sibirien über das 17. Plus, darüber, ob constexpr, und der Typ schreit aus dem Publikum: "Ja, ich habe das sogar ein bisschen in Clang gemacht." Ich bin wie: "Du bist Anton Bikineev!"


Sergey: C ++ Sibirien verbindet.


Pavel: Wenn ich mich richtig erinnere, haben wir in Sibirien begonnen, die ersten Experimente mit Meisterklassen durchzuführen. Zuerst versuchten sie, sie anzuprobieren, um zu sehen, ob dieses Format funktionieren würde. Und wie die Praxis der letzten 3-4 Konferenzen zeigt, scheint mir das neue Format sehr gut zu laufen, wenn man C ++ Russland mitzählt. Zum Beispiel habe ich jetzt die Möglichkeit, nicht in 40 Minuten zu versuchen, ein Thema zu verschieben, sondern ruhig 6 Stunden lang, um den Leuten alles zu erzählen, was ich für notwendig halte. Wenn die Leute bereit sind, erzähle ich alles, was ich kann, sogar mehr als sechs Stunden.


Anton: Workshops machen Spaß. Manchmal stellen sie solche Fragen, dass Sie sagen: "Verdammt, warum so?" Und seit einigen Tagen versuchen Sie zu verstehen, warum dies auf diesem bestimmten Compiler, auf diesem bestimmten unglücklichen Laptop, nicht funktioniert. Und es gibt eine Art Fehler im Compiler oder etwas anderes. Es scheint, dass Sie in die Meisterklasse kommen, um etwas zu erzählen, aber stattdessen erhalten Sie ein nützliches Feedback, das hilft, irgendwo etwas zu reparieren, etwas zu verbessern.


Sergey: Aus Sicht des Konferenzorganisators und des Community-Kurators werde ich sagen, dass die Workshops für mich sehr nützlich sind, weil manchmal Leute dorthin gehen, Grundkenntnisse erwerben, weiterentwickeln, anwenden und mit einem Bericht darüber zurückkehren. Einige Leute kamen auf mich zu und sagten, dass sie zu einem von Ihnen in eine Meisterklasse gingen, sie waren sehr interessiert an dem Thema und sie machten ihren eigenen Bericht.


Pavel: Anton, ich erinnere mich, dass Sie auch der Autor des Buches über Boost sind , jetzt ist die zweite Ausgabe bereits erschienen. Sag mir, wie du beschlossen hast, es zu schreiben? Zum Beispiel werde ich mich meiner Meinung nach immer noch nicht verpflichten, meine Gedanken in einem so komplizierten Format auszudrücken.


Anton: Es war ein arbeitsreicher Monat in Boost, ich habe mit jemandem dort gestritten, mit jemandem geflucht und gesagt, was falsch gemacht werden sollte. Sie haben mich überzeugt und anscheinend überzeugt. Und der Verlag suchte nur nach Leuten, die ein Buch über Boost schreiben würden. Es scheint, dass sie in die Boost-Mailingliste geschaut, den aktivsten Teilnehmer beobachtet haben, der sicherer sprach als alle anderen, und mich ausgewählt haben.


Pavel: Wie bist du überhaupt zu Boost gekommen? War es ein Job oder nur ein Hobby?


Anton: Das lag daran, dass ich nicht verstanden habe, wie Boost funktioniert. Wir haben Boost bei der Arbeit verwendet. Eine meiner allerersten Arbeiten war Boost, und ich wusste nicht einmal, wie es dort funktioniert, warum es so funktioniert.


Paul: Boost ist bisher eine Art magische Bibliothek.


Anton: Und ich fing an zu schauen, zu verstehen und irgendwann wurde mir plötzlich klar, dass man es hier in lexical_cast besser machen kann. Dann schrieb ich an diesen Betreuer, Alexey von lexical_cast , lass uns diesen Patch anwenden, aber er antwortete mir nicht. Ich habe ihm zwei oder drei weitere Patches geschrieben.


Pavel: Wenn ich mich richtig erinnere, müssen Sie Ihre Patches selbstbewusst bewerben.


Anton: Natürlich. Immer mit Open Source. Infolgedessen sagte der Betreuer, dass er jetzt vollständig verkabelt ist, er hat viel zu tun und bot mir an, ein lexical_cast Betreuer lexical_cast . Ich war begeistert und stimmte zu. Und dann Boost.Any, Boost.Variant Ich legte langsam auf. In diesem Moment schrieb er einige seiner Bibliotheken, Boost.TypeIndex, Boost.Stacktrace, die jetzt als Standard akzeptiert werden.


Pavel: Woher bekommen Sie Ideen für neue Funktionen in vorgefertigten Bibliotheken?


Anton: Einige Dinge, zum Beispiel Boost.DLL - diese Person hat an die Boost-Mailingliste geschrieben, sie sagen, schau, was für eine coole Bibliothek ich habe, sie macht viele sehr beängstigende, komplizierte und interessante Dinge. Ich sah sie so an: "Nun ja, ja, ja, oh, aber das würde mir gefallen!" Ich habe diesen Typen kontaktiert und ihm vorgeschlagen, ein Stück herauszunehmen, um separat mit Plugins zu arbeiten. Sie nahmen es separat heraus und es stellte sich heraus, dass dieses Stück viel früher in Boost einging als das, was der Mann selbst tut. Mit Stacktrace wurde mir irgendwann klar, dass es keinen Mechanismus gibt, um Stacktrace zu bekommen. Ja, manchmal erreicht es mich langsam. Und das war genau der Moment, als mir klar wurde, dass es bei den Profis keine Möglichkeit gibt, Stacktrace zu bekommen.


Pavel: Es scheint, dass ich in zwei verschiedenen Werken zweimal eine ähnliche Bibliothek geschrieben habe, um im Herbst Stapelspuren zu drucken.


Anton: Und so nahm ich es, versuchte es, warf es den Leuten von Boost zu, sie sagten nein, das geht nicht. Dann habe ich es noch zweimal versucht, und hier ist eine der Versionen, sie hat alles arrangiert und Wurzeln geschlagen.


Pavel: Aber benutzt du es irgendwie in deiner Arbeit?


Anton: Ja, wir verwenden jetzt aktiv Boost.Stacktrace in Yandex.Taxi. Es ist zum Beispiel sehr gut mit denselben Aktionen. Haben Sie etwas gemeinsam - beispielsweise die Arbeit mit JSON? Der Benutzer greift irgendwann auf das nicht vorhandene JSON-Feld zu. Nur eine Ausnahme werfen? Nun, irgendwo darüber wird es fangen. Im Allgemeinen hat der Benutzer, wo er angerufen hat? Hat der Benutzer dort im gesamten Code für die Arbeit mit JSON genau das Feld, das er nicht erreicht hat? Wann hat er es angefordert? Und Stacktrace hilft perfekt zu verstehen, was und wo falsch ist, wo der Benutzer es vermasselt hat.


Pavel: Oft beginnen sich die Versionen, die Sie bei der Arbeit verwenden, mit Open Source zu zerstreuen? Oder versuchen Sie ständig, Funktionen hin und her zu übertragen?


Anton: Ich übertrage Features hin und her. Natürlich mit Erlaubnis der Führung. Und ich werde sagen, dass dies eine sehr nützliche Interaktion ist. In Yandex.Taxi haben wir beispielsweise festgestellt, dass die Funktion toString () für Stacktrace fehlt. Es ist im Standardisierungsvorschlag enthalten, es wird überall beschrieben, aber nicht in Boost. Trotz der Tatsache, dass es mir so schien, als wäre sie dort, habe ich den gesamten Standardisierungsvorschlag von Boost abgerissen. Zum Boost hinzugefügt. Jeder ist glücklich.


Pavel: Übrigens, ich kehre zur Arbeitsgruppe zurück. Wahrscheinlich gehen Sie sofort zum nächsten Meeting nach C ++ Sibirien?


Anton: Ja, ich werde morgen früh in das Flugzeug steigen, 40 Flugstunden, und am selben Tag werde ich nach Kona fliegen. Auf der Tagesordnung der Sitzung muss das gesamte Komitee entscheiden, wie C ++ 20 aussehen wird. Was wird darin enthalten sein? Der letzte Stopp vor C ++ 20 bleibt nur eine Fehlerbehebung. Module und Coroutinen stehen jetzt auf der Tagesordnung.


Pavel: Zwei wichtige Merkmale, über die es lange und leidenschaftliche Debatten gibt.


Anton: Bei Modulen ist alles mehr oder weniger klar, sie scheinen akzeptiert zu werden, aber bei Coroutinen ist das völlig unverständlich, denn gerade bei diesem Treffen erschien der dritte konkurrierende Vorschlag für Coroutinen. Es ist völlig anders, ganz anders als bei den Coroutines TS, und es gibt Stärken. Es gibt natürlich schwache. Es ist unklar, wie es überhaupt gehen wird. Und wie allgemein die Menschen auf Coroutinen eingestellt sind.


Pavel: Was sind deine Pläne für das nächste C ++ Russland? Möchten Sie einen Bericht von Ihnen?


Anton: Ja auf jeden Fall. Ich werde mir etwas einfallen lassen. Vielleicht über Pilorama.


Sergey: Nun, vielen Dank, Freunde! Ich werde dich nicht mehr zurückhalten. Tschüss alle! Wir sehen uns in C ++ Russland .


Ein paar Worte zu den Trainings auf der C ++ Russia Konferenz


Wie Pavel in diesem Interview richtig sagte, haben Schulungen und Meisterkurse einen unbestreitbaren Vorteil: Der Moderator hat die Möglichkeit, das gesamte Thema innerhalb weniger Stunden zu behandeln, anstatt zu versuchen, innerhalb von 50 Minuten wie in einem regulären Bericht zu bleiben.


Langsam werden Meisterkurse zur Tradition. Wir haben sie zuerst 2017 abgehalten und dann in C ++ Sibirien getestet. In diesem Jahr gibt es drei Meisterklassen. Sie haben in diesem Interview bereits die Leiter von zwei von ihnen getroffen.


Eine Meisterklasse dauert sechs Stunden und kombiniert theoretische Informationen und praktische Übungen. Eine kleine Anzahl von Teilnehmern bietet individuelle Arbeit mit jedem. Dies ist natürlich zuallererst Übung. Für alle Meisterklassen ist daher ein Laptop mit dem installierten modernen C ++ - Compiler erforderlich.


Drei Meisterklassen wurden zur Auswahl angeboten: "Angewandte funktionale Programmierung in C ++" wird von Ivan Čukić durchgeführt, und "Kontinuierliche Integration für C ++ - Entwickler" und "Intelligentes und modernes C ++" werden die Arbeit unserer Entwickler Pavel Filonov und Anton Polukhin sein.


Iwans Meisterklasse ist nicht für Anfänger gedacht, sondern für Mittelstufe, die die Türen der Wahrnehmung weiter öffnen möchten. Ivan ist Forscher an der Universität von Belgrad und betreut KActivities, Contour Daemon, Lancelot und andere KDE-Projekte. Wie Sie verstehen, geht es um funktionale Programmierung. Für alle Fälle wird den Teilnehmern empfohlen, die neuesten Versionen von GCC und Clang zu haben. Wenig später werden wir ein VirtualBox-Image mit allem, was Sie brauchen, erstellen. Die folgenden Themen werden in der Meisterklasse behandelt: Ist die STL weit entfernt von funktionaler Programmierung, was sind funktionale Objekte, std :: invoke und Monaden, Monaden, Monaden. Und noch ein paar Monaden.


Sie kennen diesen Entwicklerforscher bereits im Kaspersky Lab Pavel Filonov . Er wird die Teilnehmer einladen, ihr CI mit Conan und Travis aufzubauen. Pavel wird auch die Methode der kontinuierlichen Integration erläutern und im praktischen Teil lehren, Probleme anhand von Beispielen eines Heimprojekts / einer Arbeit an Open Source und eines Arbeitsprojekts mit geschlossenem Quellcode zu lösen.


Natürlich sollten Sie in der Lage sein, in C ++ zu programmieren, einen Laptop mit einem beliebigen Betriebssystem, einen der Hauptcompiler, frischen cmake (Sie müssen die Syntax von CMakeLists.txt verstehen), git, python 3 und pip3 sowie eine Reihe von Konten mitzubringen. Weitere Details hierzu finden Sie in der Beschreibung auf der Website .


Und schließlich widmet sich eine Meisterklasse von Antoshkka den Fähigkeiten der richtigen Optimierung. Nur für den Fall, ich erinnere Sie daran: Er ist ein leitender Entwickler des Yandex.Taxi-Dienstes, ein Vertreter von WP 21 bei internationalen Sitzungen des C ++ - Standardisierungsausschusses, der Autor akzeptierter Vorschläge für einen Sprachstandard, ein Entwickler von Boost usw. Anton wird Beispiele mit häufigen Fehlern der vorzeitigen Optimierung betrachten, dann werden die Teilnehmer die Algorithmen und Komplexitäten der Standardbibliothek, Container mit Features, Verschiebungssemantik und deren unerwartetes Verhalten, Multithreading, betrachten. Da der Kurs praktisch ist, werden alle Themen mithilfe der C ++ - Bibliothek für Google Benchmark-Benchmarks experimentell untersucht. Für den Kurs benötigen Sie nur grundlegende C ++ - Kenntnisse und den neuesten Compiler mit C ++ 11-Unterstützung.


All dies ist natürlich nur eine kurze Referenz für Ihre Referenz. Die einzig wahre Quelle der Wahrheit ist der Konferenzort , an dem alles detailliert und klar angegeben ist. Beispielsweise wird die erforderliche Software auf Ihrem Laptop zusammen mit den Versionen klar aufgelistet.


Die C ++ Russia Conference findet vom 19. bis 20. April 2019 in Moskau statt. Tickets können auf der offiziellen Website gekauft werden . Wichtig: Ab dem 1. März steigen die Ticketpreise. Wenn Sie zu Februar-Preisen kaufen möchten, sollten Sie dies jetzt tun.

Source: https://habr.com/ru/post/de441800/


All Articles