{"id":20733,"date":"2019-07-01T08:59:42","date_gmt":"2019-07-01T12:59:42","guid":{"rendered":"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/"},"modified":"2022-02-17T08:49:42","modified_gmt":"2022-02-17T13:49:42","slug":"evolution-c-reflection-ts","status":"publish","type":"post","link":"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/","title":{"rendered":"The Evolution of C++ with the Reflection TS"},"content":{"rendered":"<div class='bbg-row bbg-bg--white  bbg-row--margin-top-none' data-anchor='row-69fcb00cc307a'>\n  \n\t\n\t\n\t<div class=\"bbg-row--content\">\n\t\t\n\t\t\t<div class='bbg-column bbg-column--width-8 bbg-column--offset-2'>\n\t<p><figure class=\"image-figure image-figure--has-small-image\" data-animation=\"\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"4032\" height=\"3024\" src=\"https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg\" class=\"attachment-full size-full image-figure__image image-figure__image--primary\" alt=\"David Sankel stands onstage beside a podium discussing Reflection TS (TypeScript) while a projected displays a slide behind him on Reflection TS Focus.\" srcset=\"https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 4032w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 300w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 768w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 1024w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 170w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 140w\" sizes=\"(max-width: 4032px) 100vw, 4032px\" \/><img loading=\"lazy\" decoding=\"async\" width=\"4032\" height=\"3024\" src=\"https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg\" class=\"attachment-full size-full image-figure__image image-figure__image--small\" alt=\"David Sankel stands onstage beside a podium discussing Reflection TS (TypeScript) while a projected displays a slide behind him on Reflection TS Focus.\" srcset=\"https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 4032w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 300w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 768w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 1024w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 170w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 140w\" sizes=\"(max-width: 4032px) 100vw, 4032px\" \/>\n    <figcaption class='image-figure__caption'>David Sankel stands onstage beside a podium discussing Reflection TS (TypeScript) while a projected displays a slide behind him on Reflection TS Focus.<\/figcaption>\n<\/figure>\n<div class='bb-wysiwyg'>\n    \n    <p>Bloomberg engineers are constantly looking to help the C++ programming language evolve, while also providing backwards compatibility so that applications can be more easily written in an elegant way that\u2019s simplistic, modular and concise, yet not over-engineered. At its core, C++ has some basic reflection capacity, as its code structure and behavior can be examined and modified at compile time. In other words, programmers can write powerful algorithms that operate in a generic way by inspecting types, functions, and their properties. This is frequently known as metaprogramming. Reflection is a new feature that works to fill in the gaps by fundamentally extending metaprogramming\u2019s capabilities.<\/p>\n<p>At the recent <a href=\"https:\/\/cppnow.org\/history\/2019\/\" target=\"_blank\" rel=\"noopener noreferrer\">C++Now 2019 conference<\/a> held May 5-10 in Aspen, Colorado, David Sankel, Software Engineering Manager and Team Lead at Bloomberg, <a href=\"https:\/\/cppnow.org\/announcements\/2019\/04\/sankel-keynote\/\" target=\"_blank\" rel=\"noopener noreferrer\">delivered a keynote entitled \u201cThe C++ Reflection TS.\u201d<\/a> As an active member of the C++ standardization committee, David is currently serving as project editor for the <a href=\"https:\/\/github.com\/cplusplus\/reflection-ts\" target=\"_blank\" rel=\"noopener noreferrer\">Reflection TS<\/a>, for which he is a co-author together with Mat\u00fa\u0161 Chochl\u00edk of GlobalLogic Slovakia and Axel Naumann, member of the ROOT development team at CERN.<\/p>\n\n<\/div>\n<style>#bloomberg-video-69fcb00cd2144 .bloomberg-video__wrapper { background-image: url('https:\/\/i.ytimg.com\/vi\/VMuML6vLSus\/hqdefault.jpg'); }<\/style>\n<div class='bloomberg-video' data-aspect-ratio='16:9' data-service='youtube-video' id='bloomberg-video-69fcb00cd2144'>\n\t<div class='bloomberg-video__wrapper bloomberg-video__wrapper--core'>\n\n<a\n\tclass=\"bloomberg-video__link\"\n\thref=\"https:\/\/www.youtube.com\/watch?v=VMuML6vLSus\"\n\ttarget=\"_blank\"\n\trel=\"noopener\"\n\ttitle=\"\"\n\tdata-video-id=\"VMuML6vLSus\"\n\tdata-video-title=\"C++Now 2019: David Sankel \u201cThe C++ Reflection TS\u201d\"\n\tdata-orientation=\"Horizontal\"\n\tdata-modestbranding=\"0\"\n\tdata-controls=\"1\"\n\tdata-is-playlist=\"0\"\n\tdata-playlist-starting-video=\"\"\n\tdata-start-time=\"0\"\n\taria-label=\"Play Video\"\n><\/a>\n\t<\/div>\n<\/div>\n<div class='bb-wysiwyg'>\n    \n    <p>Reflection is a new language feature that enables code to read itself at a very broad level and make decisions for the code. Now, programmers can eliminate boilerplate from their code by standardizing these functions and declarations in a library that not just one piece of code, but all code in an application, can access. As a result, this consistency provides for fewer bugs and a smaller cost for repetitive tasks.<\/p>\n<p>Sections of boilerplate code define parameters and syntax and provide minor functionality. These code snippets are often repeated multiple times because the language doesn\u2019t otherwise allow for this functionality. With metaprogramming, repetitive boilerplate code can be eliminated through the use of templates. This allows functions to operate utilizing various data types without being rewritten. Metaprogramming is about writing a program that has knowledge of or can manipulate itself.<\/p>\n<p>\u201cMetaprogramming in this general form is pretty abstract,\u201d he said. \u201cIn a specific form, if you\u2019re making a generic class, like a vector class with units, what metaprogramming allows you to do is \u2013 depending on what you put on the inside \u2013 make certain choices like store things differently, like a vector of a bool.\u201d<\/p>\n\n<\/div>\n<figure class=\"image-figure image-figure--has-small-image\" data-animation=\"\">\n    <img loading=\"lazy\" decoding=\"async\" width=\"5120\" height=\"3840\" src=\"https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg\" class=\"attachment-full size-full image-figure__image image-figure__image--primary\" alt=\"Bloomberg Engineer David Sankel photographed at Bloomberg&#039;s Park Avenue office in New York on August 7, 2018. Photographer: Lori Hoffman\/Bloomberg\" srcset=\"https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 5120w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 300w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 768w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 1024w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 170w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 140w\" sizes=\"(max-width: 5120px) 100vw, 5120px\" \/><img loading=\"lazy\" decoding=\"async\" width=\"5120\" height=\"3840\" src=\"https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg\" class=\"attachment-full size-full image-figure__image image-figure__image--small\" alt=\"Bloomberg Engineer David Sankel photographed at Bloomberg&#039;s Park Avenue office in New York on August 7, 2018. Photographer: Lori Hoffman\/Bloomberg\" srcset=\"https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 5120w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 300w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 768w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 1024w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 170w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&amp;type=webp&amp;url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/06\/David-Sankel6888-2.jpg 140w\" sizes=\"(max-width: 5120px) 100vw, 5120px\" \/>\n    <figcaption class='image-figure__caption'>Bloomberg Engineer David Sankel photographed at Bloomberg&#8217;s Park Avenue office in New York on August 7, 2018. Photographer: Lori Hoffman\/Bloomberg<\/figcaption>\n<\/figure>\n<div class='bb-wysiwyg'>\n    \n    <p>Vectors are specified by the type, like a vector of characters, strings of characters, or a template based on the type that\u2019s given. A bool can be compressed, so what normally is stored in 8 bytes can be stored in only 1 byte. This is what metaprogramming makes possible. This functionality can be considered a basic form of reflection because it is introspecting the code at compile time and making decisions based on that code. The Reflection TS takes this functionality to the next level. Previously, a programmer couldn\u2019t write a function with input that\u2019s a type and output the name of that type, but the Reflection TS enables this \u2013 there\u2019s now a mechanism to inspect data type declarations and function type declarations.<\/p>\n<p>Having some data in memory and wanting to store it on disk or receive it over a network is common in programming. Serialization occurs when the in-memory representation is converted to a series of bytes and stored on a network. This feature allows for the conversion of that data into bytes without having to write code.<\/p>\n<p>The lightweight JSON (JavaScript Object Notation) data-interchange format serializes data so that it can be passed to JavaScript code. With Reflection, an advanced C++ developer can write JSON conversion functions in a generic way so that it works with all types. This eliminates the need for any boilerplate and custom functions to serialize to and deserialize from JSON, for example.<\/p>\n\n<\/div>\n\n<\/div>\n\n\n\t\t\n\t<\/div>\n<\/div>\n<div class='bbg-row bbg-bg--grey ' data-anchor='row-69fcb00cd893d'>\n  \n\t\n\t\n\t<div class=\"bbg-row--content\">\n\t\t\n\t\t\t<div class='bbg-column bbg-column--width-8 bbg-column--offset-2'>\n\t<div class='bb-wysiwyg'>\n    \n    <p class=\"emphasis\" style=\"text-align: center;\">Learn more about the Reflection TS by listening to <a href=\"https:\/\/cppcast.com\/2019\/05\/david-sankel\/\" target=\"_blank\" rel=\"noopener noreferrer\">David Sankel\u2019s recent CppCast interview<\/a>.<\/p>\n\n<\/div>\n\n\n<\/div>\n\n\n\t\t\n\t<\/div>\n<\/div>\n<div class='bbg-row bbg-bg--white ' data-anchor='row-69fcb00cda0f7'>\n  \n\t\n\t\n\t<div class=\"bbg-row--content\">\n\t\t\n\t\t\t<div class='bbg-column bbg-column--width-8 bbg-column--offset-2'>\n\t<div class='bb-wysiwyg'>\n    \n    <p>\u201cThe Reflection TS enables library developers to provide application developers with tools,\u201d he noted. \u201cIt eliminates a lot of code, and the benefits are that there are fewer mistakes.\u201d<\/p>\n<p>Function writers who would make use of Reflection can now write very generic tools that can be used by different teams, and the teams can make use of these tools across many different domains. Maintaining code becomes easier because, if a field is added or a data type is changed, the UI is already up-to-date on these changes.<\/p>\n<p>\u201cYou have a lot of consistency because it\u2019s automatically generated \u2013 there\u2019s consistency among developers or it\u2019s the same developer over time \u2013 and it standardizes a portion of code,\u201d he explained. \u201cIt\u2019s a framework for writing similar extensions. We\u2019re not shipping the individual functions. We\u2019re shipping the tools that a library developer needs to develop those functions.\u201d<\/p>\n\n<\/div>\n\n\n<\/div>\n\n\n\t\t\n\t<\/div>\n<\/div>\n<div class='bbg-row bbg-bg--white ' data-anchor='row-69fcb00cdb85f'>\n  \n\t\n\t\n\t<div class=\"bbg-row--content\">\n\t\t\n\t\t\t<div class='bbg-column bbg-column--width-8 bbg-column--offset-2'>\n\t\n<\/div>\n\n\n\t\t\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>David Sankel looks at what compile-time reflection in C++ can do for programmers and the Reflection TS&#8217; direction within the C++ standardization committee<\/p>\n","protected":false},"author":184,"featured_media":19164,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1466],"tags":[1482,1471,1604,1603,1600,1544,1601,1524,1521,1530,1599,1598,1602],"class_list":["post-20733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-at-bloomberg","tag-c-plus-plus","tag-general","tag-metaprogramming","tag-reflection","tag-reflection-ts","tag-senior-software-engineer","tag-software","tag-software-engineer","tag-software-engineering","tag-software-engineers","tag-ts","tag-typescript","tag-vectors"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.11 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Evolution of C++ with the Reflection TS | Bloomberg LP<\/title>\n<meta name=\"description\" content=\"David Sankel looks at what compile-time reflection in C++ can do for programmers and the Reflection TS&#039; direction within the C++ standardization committee\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Evolution of C++ with the Reflection TS | Bloomberg LP\" \/>\n<meta property=\"og:description\" content=\"David Sankel looks at what compile-time reflection in C++ can do for programmers and the Reflection TS&#039; direction within the C++ standardization committee\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/\" \/>\n<meta property=\"og:site_name\" content=\"Bloomberg L.P.\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/bloomberglp\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-01T12:59:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-17T13:49:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"chaas30\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@bloomberg\" \/>\n<meta name=\"twitter:site\" content=\"@bloomberg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"chaas30\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/\",\"url\":\"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/\",\"name\":\"The Evolution of C++ with the Reflection TS | Bloomberg LP\",\"isPartOf\":{\"@id\":\"https:\/\/www.bloomberg.com\/company\/#website\"},\"datePublished\":\"2019-07-01T12:59:42+00:00\",\"dateModified\":\"2022-02-17T13:49:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.bloomberg.com\/company\/#\/schema\/person\/4d4a18aae79d6fcc1ea98181a906905e\"},\"description\":\"David Sankel looks at what compile-time reflection in C++ can do for programmers and the Reflection TS' direction within the C++ standardization committee\",\"breadcrumb\":{\"@id\":\"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":\"1\",\"name\":\"Home\",\"item\":\"https:\/\/www.bloomberg.com\/company\/\"},{\"@type\":\"ListItem\",\"position\":\"2\",\"name\":\"The Evolution of C++ with the Reflection TS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.bloomberg.com\/company\/#website\",\"url\":\"https:\/\/www.bloomberg.com\/company\/\",\"name\":\"Bloomberg L.P.\",\"description\":\"Bloomberg L.P. is the leader in global business and financial information, enabling customers to make smarter, faster, more informed business decisions.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.bloomberg.com\/company\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.bloomberg.com\/company\/#\/schema\/person\/4d4a18aae79d6fcc1ea98181a906905e\",\"name\":\"Bloomberg L.P.\",\"url\":\"https:\/\/www.bloomberg.com\/company\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Evolution of C++ with the Reflection TS | Bloomberg LP","description":"David Sankel looks at what compile-time reflection in C++ can do for programmers and the Reflection TS' direction within the C++ standardization committee","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/","og_locale":"en_US","og_type":"article","og_title":"The Evolution of C++ with the Reflection TS | Bloomberg LP","og_description":"David Sankel looks at what compile-time reflection in C++ can do for programmers and the Reflection TS' direction within the C++ standardization committee","og_url":"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/","og_site_name":"Bloomberg L.P.","article_publisher":"https:\/\/www.facebook.com\/bloomberglp\/","article_published_time":"2019-07-01T12:59:42+00:00","article_modified_time":"2022-02-17T13:49:42+00:00","og_image":[{"width":1024,"height":768,"url":"https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg","type":"image\/jpeg"}],"author":"chaas30","twitter_card":"summary_large_image","twitter_image":"https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg","twitter_creator":"@bloomberg","twitter_site":"@bloomberg","twitter_misc":{"Written by":"chaas30","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/","url":"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/","name":"The Evolution of C++ with the Reflection TS | Bloomberg LP","isPartOf":{"@id":"https:\/\/www.bloomberg.com\/company\/#website"},"datePublished":"2019-07-01T12:59:42+00:00","dateModified":"2022-02-17T13:49:42+00:00","author":{"@id":"https:\/\/www.bloomberg.com\/company\/#\/schema\/person\/4d4a18aae79d6fcc1ea98181a906905e"},"description":"David Sankel looks at what compile-time reflection in C++ can do for programmers and the Reflection TS' direction within the C++ standardization committee","breadcrumb":{"@id":"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.bloomberg.com\/company\/stories\/evolution-c-reflection-ts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","name":"Home","item":"https:\/\/www.bloomberg.com\/company\/"},{"@type":"ListItem","position":"2","name":"The Evolution of C++ with the Reflection TS"}]},{"@type":"WebSite","@id":"https:\/\/www.bloomberg.com\/company\/#website","url":"https:\/\/www.bloomberg.com\/company\/","name":"Bloomberg L.P.","description":"Bloomberg L.P. is the leader in global business and financial information, enabling customers to make smarter, faster, more informed business decisions.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bloomberg.com\/company\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.bloomberg.com\/company\/#\/schema\/person\/4d4a18aae79d6fcc1ea98181a906905e","name":"Bloomberg L.P.","url":"https:\/\/www.bloomberg.com\/company"}]}},"featured_image_rendered":"<img srcset='https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&type=webp&url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 4032w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&type=webp&url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 300w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&type=webp&url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 768w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&type=webp&url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 1024w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&type=webp&url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 170w, https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&type=webp&url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg 140w' src='https:\/\/assets.bbhub.io\/image\/v1\/resize?width=auto&type=webp&url=https:\/\/assets.bbhub.io\/company\/sites\/51\/2019\/07\/IMG_2646.jpg' alt='David Sankel stands onstage beside a podium discussing Reflection TS (TypeScript) while a projected displays a slide behind him on Reflection TS Focus.' \/>","category_info":{"name":"Tech At Bloomberg","blog_landing_name":"Tech At Bloomberg"},"_links":{"self":[{"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/posts\/20733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/users\/184"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/comments?post=20733"}],"version-history":[{"count":2,"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/posts\/20733\/revisions"}],"predecessor-version":[{"id":20955,"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/posts\/20733\/revisions\/20955"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/media\/19164"}],"wp:attachment":[{"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/media?parent=20733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/categories?post=20733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bloomberg.com\/company\/wp-json\/wp\/v2\/tags?post=20733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}