Bestand wählen
Merken

pybind11 - seamless operability between C++11 and Python

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
fuel will ruin names and won't at the trading firm called even in the world and special surprise to symptomatic people here don't that the same competing competing talk uncertainty with them and made and so thanks thanks for coming yeah and developed quality + which made it seem like a waitress topic for present conference but I think is good role until interesting and that there's been a few good talks this week on the Python and C 4 5 and on type I think it's it's that synchronize and I hope that you so let's talk about I'll question essentially so exact as opposed extension and by by the way in really mean the by here but the session model is something that you can import from Python but it's not written in and that normal means is written in C or C + + because supplies and provides the CPI but this they signals right extension models in other languages like cross go and so why would you what would you do that and the 1st like a main reason usually as tools able to interface with elaborates maybe you want to use some part of tens of flow that's not that's not been wrapped in passenger seat in this way or it can maybe euros your code to a sparse and you want to face with that and another thing it's pretty common reason is writing the performance-critical codes America that's number-crunching very fast and then you can expose it lies and the 2 less obvious reasons from that a really important the F on real important in my own work all of these loci if you if you have a non Python libraries recruitment C + + for example you can mirror the right and Python literally one-to-one and this was to protect and serve us like androgen number for example and then you can just translated but to suppose fastest at semicolons which the change the formal templates and if you do that you can also run the test and present it so that you can do that and suppose plus just it's lot user there's as frameworks and if you just America at its re-nested which use number 1 and this and other tools that n it the last 2 . sexual play well together like you can transfer you can start prototyping things and and then write tests in Python and then translate things but suppose post-budget budget has to stay the same so which is confronted by um so it's possible to write a my thanks to the extensions in pure C and there's been quite a few talks in this but if you don't that's where you need to have a few skills like you to be good at recounting them something in anyone splits the counting different names not the Hastings and so an exception handling 30 of them Natalie and that really mean index C-style error handling you have to know you have to be able to type faster have that you would like to talk a lot and you'll make some pairs and if you if you don't make some errors and the despise important change that can make the voice so that's that's quite a lot of being to go through M. so here's an idea let's and if we're going translate Python into licensees Michael's why don't we instead of running that's why don't we just translated but to see and then we can augment question with this fancy and the syntax so we get like function pointers and references and all that and it can works and and there's leverage the use at heavily like a secular pundits and most American tensor proteins actually insight but there's a few problems with actual the 1st writing senone operating license and essentially at times it's really hard to figure out what is its writing and they deserve just checks a few days but 2 lines as model generates 2 thousand lines of C so it's it's quite a lot of you have most Bill steps the ideas you should talk about it has limited superstar supporters like it's like starting 2003 it has a few new features supported by most them are not on and it's of limited support metaprogramming generic types you have to create stubs for everything that you use from C and so I think it's good for robbing few functions like an electron as doesn't is not so good for managing huge for this my biggest right row is this and this is debugging compulsive extensions just complete pain and I just want to
illustrate the real quick so there our function the that does nothing but it does this nothing intense right so I'm pretty sure if few positive type I just not generate any capital in so if we run uncertain on that then I am
nothing good happens so this is the code for just 1 line like for i in range of and where we're told 2nd that n is an integer so like what could I be so you'd expect to see for look in organism the same there's nothing interesting there is just a bunch of siphoned see case really and so what what's what's wrong turns out that I forgot to tell said
candidates i is an integer summers and had to do that and and then generates it's still not nothing it's something and it's which provides so if you were to buy the connections to the formal but if you to debug acyclic steps rigidity it would be interesting with pain so here's another idea let's use boasts
investors as the humongous supposed whatsoever that does everything so if you if you superposed make often be dropped library for it from and there's a opposed by the written by the parents who is also the author of most of and build metaprogram library and the problem with that is that you have to build its depending on your platform that may not be easy it requires that all servers post is blossomer attractor was and and half lines of headers and end users would tools for building and then it requires on this because but is compatible with everything we all old compilers it doesn't use any language features to use its own metaprogram library suits it takes a very long time to compile and you end up with huge banners and doesn't attract contributors because really hard to know it was to anything with it and just a disclaimer not lose another talking versions siphon they're both really good options it's like if you're using burst than despite maybe like beaches on site is really betrays wrapping few functions from and so this
1 is to introduce a new library yet another library that's is sort of like was Python but those things more light with fashion um so it allows it to interact with the interpreter or and that's present evidence was basket just had a only and no dependencies there's incredible tools this it's very small it's like fractals lends of corporate base on and its optimized as compile-time so we've seen from 1 of the big progess converted from was present to abide by and now when down by a factor of 5 and both when the size wealth and so that was quite they was gorgeous deceased CEO and it'll spittals that orbital about Linux Windows migrants to present to history by by and yes a set of rules set by some it we require possible 11 but some new features from school was 14 and was Sentinel's supported so there is support for non quite a lot and to actually located and includes a number headers their support for embedding the interpreter and there's a whole bunch of different functions like features of this was possible support the and here's link to the to the ghetto broke so just try to what what is for that using a few examples there's not enough time to to coral that some but I hope you have a good understanding of and how it
works so start with a simple slow world example that's what you normally do when you learn looking lunch framework and a few brokers its European it like a surprise or modified by any pi bonds and pipes installed and some nomination compilers and come in all in all code examples I will skip this this the lines business including the by headed then Ellis tool that the namespace to justify and also defining the pavement model which is the 2 main extension model OK so whenever there's a verbal and adjustments the model this requires defining right so let's write a function that it's dangerous like in the intervals plus there a function that takes baby returns it must be and we can call the deaf on on death of our method on the Montiel and told hey here's the function called adds I to its pointed to the function and you can get a docstring in a whole bunch of things that knows which generates quite signature that's project to compile it works and you did not have to tell it what the what what's the exact signatories all inferred from from the types of using the suppose plus the commodity of course on the type inference features some or you can write it like this you don't have to define function so we can just use land on a tuple plus lambda to distort here's an anonymous function takes can be returns a possibly and this also works on so it's like a 1 liner and if you compile it
and we'll get to in a 2nd but it just works like a normal person model vector generates the doc strings and the signatures is there's 2 into arguments returns and and you know you it's want want to get feedback from you figure out some non integers it tells you that signatures compatible so does the type checking and so the you know the compelled well there's few ways if you're if you're a copy owner of Linux box then can just you know told word include a star and spirited you don't have to link it to place or anything and so that's a little Thailand to compile it you can use same thing on my cursor just have to like 1 more like answer doesn't then when those I heard as possible but try this problem not fun um however
there's there's better ways so you can connection to read it and set of tools this it'll just tell what's called for defined by Ben headers and this been and uh and you have to solve this competency plus plus in this book was 11 or 14 mode that's that's not a set of tools will take it from there there is no things are actually built of
specifically for it it was told typically for doing this conference and just for myself but it turned out to produce false density due to know but this tension that can just load in order to book and it does all the bootstrapping and it will compile the model actually caches it will enable enable tuples wasn't excelling in literature it's will forward input output streams from C + + and that's literally the entire so for for this are you should enter its composites it's important back and you can just use of functions from and so this 1 is not always known Taipei yet but I have to do this we can't so you can find it and get out finally diffusing maker just
1 line that we were going to make it visible to the user just great model my out with these sources that's that's it all right so how do
we go about writing classes because that's what's the US is suppose all about and I'm
so let's create a simple bindings for and H. 2 p class response class by Python and this is this is sort of something like you would get from requests 11 Python like it's a status and reason text so for example in this class you can created with just status reason for canals past optional text I which false shrink or if there is a default constructor which just initialize it with 210 OK which rose response for everything went fine so this is this is quite simple and we want to mirror this like 1 to 1 and
by the to have the same API so 1st of all we
combined the type itself so help of here's type response please creates a type called response string because there's no reflection suppose + weight will have to give it the name like this a string in so this registers the type in the after this line you can use it anywhere in any function signatures you can return it you can take it as an argument or you can nested within other types so um
was when the constructors Set in Python in schools but you can have multiple constructors the different signatures define our in Bosnia of only 1 in it so what we do here is that this is a shortcut for the cat the pipe in its short cuts from this template which you've the signature of the input arguments to your Parliament and then it creates the solid so in fact in Python all the stricken structures will be merged into 1 in it and it will do it will do the runtime dispatch so obviously studies this much is not possible because presence of compiled will it will look like 1 function and in the docstring would say that it's has 3 different signatures OK now other attributes you can you can bind attributes directly into here and what it does it creates descriptors and and Python so they could be read only like get descriptors gets out and so read write descriptors so we combine these 2 directly as well and suppose Bosworth stood string and and and Python you'll have like desktop type of mechanical time for the and of yes you
can if you look at the properties so as an instance suppose plus a method that doesn't take any arguments so I cure resembles OK property that tells us that status is not an error you can buy and it is a property in Python read-only or a connection binds regret purposes as well the getter and setter and
so you can overload operators so I can suppose plus there's an equal operator the checks that all feel the same in the exact same thing Python to define the double under if you takes self and other and Johnson cell was of the and because it's such a
common pattern of the sexual shortcuts taken just might include this Parliament operators however and say depth myself equal self where this equals commit any operator ability left shift that equals or in anything like that and this makes a very big the others makes
varies it to bind objects that male with 24 operators like the matrix or vector type or something like that so you can define it any method like so here we can define a record so this type as a proper representation and give you don't like you in presence of which is greater string and format it's just box OK and this is this is the full
binding codes and so it's this not so much rulesets comparable to 0 it's less than the initial conditions and if you to those insights and I would be kind of the same and maybe more because the proper overloads and and you can use it like like any normal you know Python class receive imports the type the other properties you about this of the docstring servicing and so so that the of operator people to bring works that's all works is is expected some of the other things and for
function signatures in both and you can have all these like origin default values star obscured arguments and this old
it's old doable here as well so 1st of all you can name arguments through pi art but because the bottles does not proper reflection of you and you need to give name you don't have to but if you want to work your augment the cold name like name in this case you
to told that and now the docstring there's actually it's actually called name so that that's that you can assigned to priority so
here where the same function but the trends and times were times like an optional argument defaults to 1 and this would this would work as
expected and you can call the function of 1 argument or 2 or provided as keyword arguments and and other
things that you can take any Python object sort of you can take a playlist which is like crap about around by objects and you can move so here for example would count all the strings in the list and if you to do this in Python you would literally look the same like landslides you'd like for item in a list if is instance string and increase and return and back so that what look through a close and watches as expected but you can take extend your arguments as well as through a priority by Chernobyl York's
I'm so that already said this function you can bind multiple possible was functions to a single by the name and then the real workers overloads so will the runtime dispatcher on the types here we have a function that takes into a float passementerie composite floats and a goes the just dispatched to different functions and a figure something else it's a tells you it's an hour so that's that's pretty handy but there there's a bunch of things that I would just like to quickly jump through some so those are the 3 ways to communicate objects support post by the so the first one is you have to be you created something suppose Bus Rapid Entire objects and then send it off to by the you you just sort of store the pointer inside pi object and then we recorded in the register instance mother so if it if it ever comes back the simplest possible no that we were the ones who created would quickly and rapid and it's it's very fast and no 1 is the opposite where would its native in Python what's reference to possible so it's like pilots quite it's my in my string and it's on suppose besides will have a thing wrapper around by object of the 3rd 1 is like in the in the examples that I've shown us so when you have studs training suppose plus and interstellar in Python I know that these given in really present present
in this object as well and they have different memory layout so you can really can will share them uh so that this would always involve a proper there's waste of have to tell it to to work on that if you need to share a vector or not for example so some the times there was support that
like built-in that produces the scalars strength tuple sequences maps data sets all functions like daytime functions of the name word types from SOL + 14 will or something like that as the Optional city variant so can also write your own type it's fairly easy so you can of the for example a could timestamp type that would work as an instance of a sparse once ascended to Python works as planned timestamp for example and so that could be that could be quite handy few more
things in classes a former go into this in detail because a little you know quite a lot of the but you can do single multiple inheritance you can override civil consortia methods from Python and it would work but which requires like the middleware class to do that you can have custom
constructors so it's not limited to this planet shortcuts can to do anything they're just like in Python are you can define implicit
conversions so some if the Tajik convertible implicitly to each other in suppose plus you can make some Python works the same way so function that expects they instance of 1 type can also take another the OK we can overload operators and you can also define static methods properties attributes and all that so there's also the
Python interface it's like the thing that starts with an hi dubbed call on like a pie list of or products and and which rhetoric quot quite a lot of its asserts with and by object which is the highest level of the object in the hierarchy and my handle so it could be with a welter of counting little built-in types like by model in function list and into and you can cast things back and forth from suppose Boston by some using this cost operator or cost method
so you can call Python functions service using of France's normally and I think this is pretty cool example where we have a tuple of arcs and then what dates of uh on 2 dates and and the function public engage and we call that an which expand on both tuple into the acceleration plus 1 electorode arguments exactly like you wouldn't buy sort of and this is you know this is still supposed bosses just heavily overloaded but but which critical thinker and you can import models you can see there's a bunch of milton's the been wraps like prince and formats and so of length is instance and all that we can run arbitrary but I think it is a string you want to do that in fact you have to resort to doing that on pipe might make a few things of compatible because and if they don't have an equivalent for forest some surprising call well to do that you can run you can always Python files as well 1 of the big words and
is the support for buffer particle Python so you can of so you so you can interact with America so you can wrap any type and of custom types to support of the buffer particle and then you can then not for example lump I would automatically could up like and as possible into a number reconstructed and will know what to do the you can build buffer is a number of years directly well to support number so if you have an advanced old you include a like pi bond number 100 but you don't have to go and start like locating number by itself so will figure it out and there's there's a few types like wide array of witches untyped right and priority which is templated grant from for a time during the and there's things like those of functionality by the few things all mention was like that would be bounced check and balance unchecked on the taxes and the fast access to 2 properties like a shape number dimensions in detail all about that what is true number I see that in the support for registering structured nobody types and if you've never heard what that is it's can like numbers but in the by the and is different than the by and that was my own contribution to buy from the somatic function factorization and broadcasting to right scalar functions and then just drop them so the work in any number of shapes and that's pretty and but will support again if you know what that is that's the it's a numeric support class library that's what problems and took some scientific circles um in a few other things that don't fit anywhere else and like different return value poses you can tell example if if you're returning a reference or a pointer you can tell by by and this section pointed to an internal members of knows how to print with preferences and garbage collected you and you can tell we can also tell by asked by mind to keep 1 object alive well and others like like if you're a trading over C + + container and you don't want to die well know before you done so they can think and there's automatic translation of suppose exceptions to some exceptions you can also register your own translators sort of like you can do with Python but you can have custom holder types and was for the default smart pointers like unicorns shared pointer and 1 last thing I want to mention here it would be that the parliament does have a time of sorts but it's pretty fast so and the way it works it has a capsule so that they can see by the term for the block of shared memory like and interpreter so I in Part 2 . 5 binds model it looks for an existing capsule by capsule and who doesn't this creates 1 man as the import of the pi bond models they look the same capsule and then sort of find its and they show the same map of register types and registered instances so that's can I worked
on and the last 2 sections of I want to be like so few examples of what you can do with possible list and 1 is on call that a hobby you that this quite a common thing to you for example you have a real fast what sort slavery in suppose for and it takes some like on on events you can you know you can pass they all more functions don't would be called teach them must Mysterons and holy place of um well that bounces you can use the polymorphic function type that has to be function in superstars and you will be converted back-and-forth tool to abide by it and function of objects and this is quite cool because Python by the function initially closure that that has a scope captured and suppose both function can be a closure that has other suppose plus of cultures as well and it works has so for example here we have a function of 4 even to Euratom and an integer and you give it a function that takes an inch returns nothing that would be called for each given number you know from 0 up to n and you can use like social of like a Python called back to the topology of Python collected as friends number it passed the directly and and that seems to work on you can also do that this kind of
stuff you can have a higher order functions we can make use of capturing closures intervals so for example here is a so in defense is a type is a function that takes an and returns an meant so apply and is a function that takes a function and also a number and applies this function and times although there's ablaze so it returns a function that does that that makes sense can like a the of sorts in Python and so it if f is a multiplied by 2 N m is equal to 10 to the old like multiplied by 1024 OK and you can note that in the square brackets were like F and and so this is a simple notation for would capture have and capture and by value so this is stored in the In the closure and the primitives like you can uh if you compile lists so can define a quick question function and then passes the what's return back to us is a C + + closure which is converted to a Python function that we can call and it still works like like adequate you
guys should go 1 step further so so the green 1 the degree in a plan is the 1 from the previous example and the blue 1 is a factor that creates the green 1 from for given and so it's like if you if you give me and I will give you the greater the decrease all these functions in such way that makes sense and you can and just for the fun for the fun of it we can combine this and this the same name because we're vowels and civil spots will have 2 different versions of applied and 1 takes an end and is like a factory function and another 1 takes an antenna function and returns a function and we can use them both at the same time
so so this is the 1st example where a function was a apply and of infinite of 10 and then gives us 2 5 6 0 or we can use it as the creditors and all that apply and of its so that's a factor returns and the crater decried function and it works the same way as well so investors particle is model for a lot of missionary here and and when baffled me so that actually works on
and last but not least there is some like num number support this was report important for myself and some is talk to 1 sold the author of the talk to 1 so the author of the original author of my mind just few days back said that this this talk about hips enough if there's no understanding Trenton number a figure that should should put 1 example and found so
here's the full example took me maybe 10 or 15 minutes to to put it up on here we want to compute rolling starts on on a frame like not on a series of flights and so you have a rolling window that if you become what that is you you have a fixed window size just moves along through this there's no retirement most ships most by 1 element you recomputes some statistics like mean or median or variance standardization so here will just compute mean and standard so the and the type would be double right so where the strong stance function takes a of double so it stays it would be like a float 64 and empowering and it takes window and what we do next we just how well we use favor to make it faster it wouldn't actually compute at each time the book from buffer most with our computer and full of can make use of the fact that uh to compute the mean and every every time you can if you have the sum of elements in the buffer and then the sum of squares then you can infer actually both the mean and the standardization and to keep track of the sum and some squares you can just add 1 elements and instruct 1 element at a time studying with makes a lot faster than actually trying to the whole thing over time not entirely sure what pandas those in terms of controlling a guy but it's still the slower and so you can see from the code it's it's not overly enrolled and and it's you know it uses this unchecked some project system operates so we disable the bounds checking because 101 of Canada and run over the bonds and the rest is just like a normal numerical widows and competitions are storage in these starts array 1 thing to note is that starts is a structure here and with what words were turned back from this function is higher rate of this infrastructure to so this is known as the record remember what and in our model will have to register it's explicitly so we say here's a start stop it has a starts Mumbai the type and it has 2 columns mean and std and they will be translated with to buy some of these names and images when the function to similar this
works in the foregoing policy and tried out and we can past and we can pass anything convertible tool and I'm very relativists functions of the strong starts we so across a bunch of ends and went off to and you go like that from that looks like this so obviously this is running mean this the running standardization of so few use this rolling don't mineral and others to the you get the same result in fact let's jackets and was just generate 25 million values that both ways and yet we can check that it's the same the
and we can also check if it's fast enough so if you're Anderson founders for 24 million elements with window so as of 1 thousand takes 1 . 1 seconds for 2 of the mean and takes another 1 compute the standardization noticed takes 0 . 26 seconds good both to actually does make sense like and if you know if it if it starts taking minutes or sometimes hours to complete the scanner things because a lot of data to may be worthwhile to spend about 10 minutes and code up yourself and our final
lecture thanks tool to Wenzel Jacob was the original author of this project and Jason the Americans in attaining its malicious having what features and a lot of people including myself for contribute to contributing although the stuff also datagrams for creating this Python and withstand del and like thank my work I it for the system of 4 let me fuckin this work for example and last but not least but thank you for listening thank Miha was yeah I have put up how could a year equal class yet there's becomes part of our it is just didn't mention all the features that take 2 of the time you years I think so OK that's guy from is wondering if you can and if you always using the approximation of the newly found annotation say placements were killed in the right yeah reallocating people can lead to different forms of annotation and so the application for what exactly and to 6 example when you declare um class can have the example of multiple in it some types signatures on when you actually instantiate objects in Python here is it always happens when he can't do anything differently here if happens and heapsort uses the the the operator in super sparse but I think you mean like the new place in a lot of time looking at and so what aunts when exposed to support that but it should be possible yeah that's I have the library it's we recall and wondering what the state of vision examples and what's the license of the library now that the conditions for good so that's is don't Sprewell Nintendo it's explains a lot more than the than the stock in water through examples from you know from really simple ones to most complicated once this what was planning to do is use a set up the tutorial books that will so can run the whole thing in their trip to another 12 but of today conditions forces on read the box so you can find it on or get horrible well also found 1 thing to note is that uh and there's a few things in this talk that use and and syntax differences in this talk and from the latest stable release so it's actually if you tried to compose this with the weather by power now may complain but will Bush version frozen that will and the of all this and what's the license of the library and the license is GP added and like the music I think this MIT you mention is that the problems with Boost Python on long compile times and then the generated or all options object size so do you have any numbers on a pipeline compares to that I'm concerned numbers can on what exactly so the compiled times components and had generated code size yet so the thing is if you if if you have a really small model than I was the the the extension model generated with this person would be smaller because this has a compiled parts like precompiled parts with support by by model what would actually bigger than both sides and was by think what the tool and once it starts going up and so the set of an example of that's it's apply receptor a wrapper for chemical framework of that was initially in was Python and then they the developers transparent to by which that it successfully I think it went down by a factor like 5 . space and 5 . 7 or something that's both compile-time and binary search and then in my expenses also if I don't firstly use was Python but it's emantras just say that it's true so I assume the role law was held when asked prosecutors call when new from Python and can I dropped to kill yet again ask it here just for the sake of time but you can there's things like scopes you can ignite like a scrub God's formulas for example the there as well the any other questions the whole point of how
Telekommunikation
Mathematisierung
Formale Sprache
Schreiben <Datenverarbeitung>
Zahlenbereich
Maßerweiterung
Kombinatorische Gruppentheorie
Code
Computeranimation
Datensatz
Informationsmodellierung
Softwaretest
Modul <Datentyp>
Tensor
Code
Datentyp
Translation <Mathematik>
Programmbibliothek
Inverser Limes
Maßerweiterung
Softwareentwickler
Zeiger <Informatik>
Gerade
Modul
Softwaretest
Lineares Funktional
Zehn
Anwendungsspezifischer Prozessor
Güte der Anpassung
Ausnahmebehandlung
Schwach besetzte Matrix
Datenfluss
Arithmetisches Mittel
Automatische Indexierung
Rechter Winkel
Mereologie
Codierung
Restklasse
Fehlermeldung
Lineares Funktional
Diedergruppe
Ganze Zahl
Selbst organisierendes System
Rechter Winkel
Datentyp
Extrempunkt
Code
Computeranimation
Web Site
Compiler
Formale Sprache
Versionsverwaltung
Maßerweiterung
E-Mail
Systemplattform
Computeranimation
Vererbungshierarchie
Programmbibliothek
E-Mail
Gerade
Binärdaten
Autorisierung
Einfach zusammenhängender Raum
Lineares Funktional
Suite <Programmpaket>
Fehlermeldung
Kraft
Gebäude <Mathematik>
Güte der Anpassung
Konfiguration <Informatik>
Ganze Zahl
Server
Repellor
Programmbibliothek
Metaprogrammierung
Chipkarte
Subtraktion
Compiler
n-Tupel
Zahlenbereich
Maßerweiterung
E-Mail
Kartesische Abgeschlossenheit
Framework <Informatik>
Code
Computeranimation
Informationsmodellierung
Umwandlungsenthalpie
Modul <Datentyp>
Typentheorie
Bildschirmfenster
Datentyp
Typinferenz
Virtuelle Realität
Speicherabzug
Programmbibliothek
Maßerweiterung
Gerade
Modul
Serviceorientierte Architektur
Nominalskaliertes Merkmal
Topologische Einbettung
Binärcode
Interpretierer
Lineares Funktional
Fraktalgeometrie
Namensraum
Textbaustein
Vererbungshierarchie
Schlussregel
Interpretierer
Binder <Informatik>
Elektronische Unterschrift
Teilbarkeit
Funktion <Mathematik>
Menge
ICC-Gruppe
Projektive Ebene
Compiler
Programmbibliothek
Lambda-Kalkül
Rückkopplung
Quader
Desintegration <Mathematik>
Maßerweiterung
Computeranimation
Informationsmodellierung
Ganze Zahl
Fahne <Mathematik>
Typentheorie
Datentyp
E-Mail
Modul
Einfach zusammenhängender Raum
Parametersystem
ATM
Binärcode
Konfigurationsraum
Gasströmung
Vektorraum
Elektronische Unterschrift
Menge
Funktion <Mathematik>
Parametersystem
Wort <Informatik>
Hilfesystem
Normalvektor
Zeichenkette
Cursor
Spielkonsole
Bootstrap-Aggregation
n-Tupel
Quellcode
Ein-Ausgabe
Computeranimation
Dichte <Physik>
Streaming <Kommunikationstechnik>
Informationsmodellierung
Notebook-Computer
Ordnung <Mathematik>
Gerade
Funktion <Mathematik>
Modul
Konstruktor <Informatik>
Schnelltaste
Statechart
Schnelltaste
Endogene Variable
Klasse <Mathematik>
Default
Quick-Sort
Computeranimation
Endogene Variable
Konfiguration <Informatik>
Lineares Funktional
Parametersystem
Gewicht <Mathematik>
Spiegelung <Mathematik>
Elektronische Unterschrift
Computeranimation
Endogene Variable
Statechart
Endogene Variable
Datentyp
Gerade
Hilfesystem
Zeichenkette
Beobachtungsstudie
Parametersystem
Schnelltaste
Kraftfahrzeugmechatroniker
Konstruktor <Informatik>
Template
Rechenzeit
Ein-Ausgabe
Elektronische Unterschrift
Computeranimation
Endogene Variable
Statechart
Menge
Datentyp
Computerunterstützte Übersetzung
Datenstruktur
Zeichenkette
Attributierte Grammatik
Einfach zusammenhängender Raum
Nichtlinearer Operator
Parametersystem
Overloading <Informatik>
Kategorie <Mathematik>
ROM <Informatik>
Zellularer Automat
Booten
Nichtlinearer Operator
Computeranimation
Endogene Variable
Fehlermeldung
Binärcode
Schnelltaste
Nichtlinearer Operator
Matrizenrechnung
Vektorraum
Nichtlinearer Operator
Computeranimation
Endogene Variable
Objekt <Kategorie>
Statechart
Datensatz
Schnelltaste
Mustersprache
Datentyp
Dateiformat
Verschiebungsoperator
Zeichenkette
Nichtlinearer Operator
Lineares Funktional
Parametersystem
Kategorie <Mathematik>
Klasse <Mathematik>
Schlussregel
Elektronische Unterschrift
Computeranimation
Endogene Variable
Zeichenkette
Statechart
Dienst <Informatik>
Funktion <Mathematik>
Code
Datentyp
Codierung
Default
Zeichenkette
Lineares Funktional
Parametersystem
Statechart
Spiegelung <Mathematik>
Schnelltaste
Twitter <Softwareplattform>
Parametersystem
Default
Computeranimation
Konfiguration <Informatik>
Objekt <Kategorie>
Parametersystem
Lineares Funktional
Abgeschlossene Menge
Green-Funktion
Mailing-Liste
Quick-Sort
Computeranimation
Objekt <Kategorie>
Statechart
Schnelltaste
Parametersystem
Zeichenkette
Instantiierung
Objekt <Kategorie>
Telekommunikation
Overloading <Informatik>
Subtraktion
Kombinatorische Gruppentheorie
Computeranimation
Eins
Statechart
Multiplikation
Reelle Zahl
Typentheorie
Datentyp
Wrapper <Programmierung>
Speicher <Informatik>
Zeiger <Informatik>
Figurierte Zahl
Ganze Funktion
Lineares Funktional
Datentyp
Rechenzeit
Vektorraum
Umsetzung <Informatik>
Quick-Sort
Objekt <Kategorie>
Funktion <Mathematik>
Festspeicher
Parametersystem
Schwimmkörper
Bus <Informatik>
Eigentliche Abbildung
Zeichenkette
Instantiierung
Folge <Mathematik>
Klasse <Mathematik>
n-Tupel
Baumechanik
Skalarfeld
Computeranimation
Statechart
Ganze Zahl
Typentheorie
Datentyp
Vererbungshierarchie
Zeitstempel
Booten
Funktion <Mathematik>
Lineares Funktional
Schwach besetzte Matrix
Umsetzung <Informatik>
Menge
Konfiguration <Informatik>
Mapping <Computergraphik>
Zeichenkette
Tupel
Funktion <Mathematik>
Wort <Informatik>
Instantiierung
Schnelltaste
Konstruktor <Informatik>
Lineares Funktional
Overloading <Informatik>
Umsetzung <Informatik>
Kategorie <Mathematik>
Vererbungshierarchie
Nichtlinearer Operator
Umsetzung <Informatik>
Konstruktor <Informatik>
Computeranimation
Hydrostatik
Datentyp
Virtuelle Realität
Attributierte Grammatik
Attributierte Grammatik
Instantiierung
Schnittstelle
n-Tupel
Hierarchische Struktur
Computeranimation
Übergang
Kreisbogen
Informationsmodellierung
Modul <Datentyp>
Code
Typentheorie
Datentyp
Pi <Zahl>
Modul
Schnittstelle
Lineares Funktional
Nichtlinearer Operator
Parametersystem
Dicke
Wald <Graphentheorie>
Systemaufruf
Mailing-Liste
Biprodukt
Elektronische Publikation
Hochdruck
Objekt <Kategorie>
Tupel
Dienst <Informatik>
Funktion <Mathematik>
Benutzerschnittstellenverwaltungssystem
Dateiformat
Restklasse
Bridge <Kommunikationstechnik>
PRINCE2
Zeichenkette
Instantiierung
Chipkarte
Webforum
Gemeinsamer Speicher
Element <Mathematik>
Modifikation <Mathematik>
Kardinalzahl
Skalarfeld
Computeranimation
Netzwerktopologie
Typentheorie
Translation <Mathematik>
Protokoll <Datenverarbeitungssystem>
Default
Metropolitan area network
Interpretierer
Schnelltaste
Lineares Funktional
Shape <Informatik>
Datentyp
Kategorie <Mathematik>
Systemaufruf
Ausnahmebehandlung
p-Block
Zeiger <Informatik>
Systemaufruf
Teilbarkeit
Ereignishorizont
Strukturierte Programmierung
Rechter Winkel
Ganze Zahl
Gerade Zahl
Translation <Mathematik>
Garbentheorie
Instantiierung
Algebraisch abgeschlossener Körper
Subtraktion
Ausnahmebehandlung
Hausdorff-Dimension
Zahlenbereich
E-Mail
Term
Broadcastingverfahren
Puffer <Netzplantechnik>
Informationsmodellierung
Datentyp
Programmbibliothek
Zeiger <Informatik>
Datenstruktur
Kreisfläche
Rechenzeit
Default
Mailing-Liste
Umsetzung <Informatik>
Quick-Sort
Chipkarte
Objekt <Kategorie>
Mapping <Computergraphik>
Summengleichung
Mereologie
Partikelsystem
Maschinelle Übersetzung
Lineares Funktional
Algebraisch abgeschlossener Körper
Automatische Handlungsplanung
Versionsverwaltung
Zahlenbereich
Mailing-Liste
Baumechanik
Teilbarkeit
Quick-Sort
Computeranimation
Zahlensystem
Poisson-Klammer
Minimalgrad
Datentyp
Faktor <Algebra>
Primitive <Informatik>
Ordnung <Mathematik>
Autorisierung
Lineares Funktional
Informationsmodellierung
HIP <Kommunikationsprotokoll>
Besprechung/Interview
Zahlenbereich
Partikelsystem
Figurierte Zahl
Teilbarkeit
Computeranimation
Unendlichkeit
Resultante
Umsetzung <Informatik>
Gewichtete Summe
Rahmenproblem
Aggregatzustand
Element <Mathematik>
Kardinalzahl
Bildschirmfenster
Term
Code
Computeranimation
Gebundener Zustand
Metropolitan area network
Puffer <Netzplantechnik>
Statechart
Weg <Topologie>
Informationsmodellierung
Datensatz
Bildschirmfenster
Datentyp
Statistische Analyse
Speicher <Informatik>
Datenstruktur
Varianz
Bildgebendes Verfahren
Lineares Funktional
Fehlermeldung
Statistik
Reihe
Web Site
Physikalisches System
Bitrate
Medianwert
Arithmetisches Mittel
Quadratzahl
Schwimmkörper
Projektive Ebene
Wort <Informatik>
Hill-Differentialgleichung
Normalvektor
Message-Passing
Arithmetisches Mittel
Standardabweichung
Punkt
Versionsverwaltung
Kartesische Koordinaten
Element <Mathematik>
Bildschirmfenster
Gesetz <Physik>
Raum-Zeit
Computeranimation
Eins
Gruppe <Mathematik>
Bildschirmfenster
Maschinelles Sehen
Nichtlinearer Operator
Präprozessor
Approximation
Schwach besetzte Matrix
Gleitendes Mittel
Elektronische Unterschrift
Teilbarkeit
Konfiguration <Informatik>
Arithmetisches Mittel
Menge
Forcing
Konditionszahl
Grundsätze ordnungsmäßiger Datenverarbeitung
Projektive Ebene
Standardabweichung
Aggregatzustand
Subtraktion
Quader
Wasserdampftafel
Klasse <Mathematik>
Zahlenbereich
Framework <Informatik>
Code
Ausdruck <Logik>
Informationsmodellierung
Multiplikation
Bildschirmmaske
Wrapper <Programmierung>
Datentyp
Programmbibliothek
Vererbungshierarchie
Zusammenhängender Graph
Softwareentwickler
Maßerweiterung
Leistung <Physik>
Autorisierung
Zwei
Physikalisches System
Objekt <Kategorie>
Differenzkern
Mereologie

Metadaten

Formale Metadaten

Titel pybind11 - seamless operability between C++11 and Python
Serientitel EuroPython 2017
Autor Smirnov, Ivan
Lizenz CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben
DOI 10.5446/33723
Herausgeber EuroPython
Erscheinungsjahr 2017
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract pybind11 - seamless operability between C++11 and Python [EuroPython 2017 - Talk - 2017-07-14 - PythonAnywhere Room] [Rimini, Italy] https://github.com/pybind/pybind11 pybind11 is a lightweight header-only C++11 library that exposes C++ types to Python and vice versa and allows creating Python extension modules with minimum boilerplate by leveraging compile-time introspection and type inference. While this library's goals and some of the syntax may be considered similar to Boost.Python, it has a much smaller footprint, is entirely self-contained, and offers additional features like direct support for NumPy arrays. In this talk, we will look at how to write Python extension modules in C++ from scratch with pybind11, starting from simple bindings and building up to more complex examples that deal with iterators, STL data structures, NumPy types and Python callbacks. We will also touch upon some of the internal machinery of the library like the virtual call mechanism and reference counting

Ähnliche Filme

Loading...
Feedback