{"id":4519,"date":"2022-08-19T15:09:31","date_gmt":"2022-08-19T13:09:31","guid":{"rendered":"https:\/\/mariusbancila.ro\/blog\/?p=4519"},"modified":"2022-08-19T15:09:33","modified_gmt":"2022-08-19T13:09:33","slug":"my-book-template-metaprogramming-with-cpp-is-now-available","status":"publish","type":"post","link":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/","title":{"rendered":"My book &#8220;Template Metaprogramming with C++&#8221; is now available"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I am pleased to announce that my latest book, <strong>Template Metaprogramming with C++<\/strong> (ISBN 9781803243450), has been published by Packt and can be ordered from both <a href=\"https:\/\/www.amazon.com\/Marius-Bancila\/dp\/1803243457\/\" target=\"_blank\" rel=\"noopener\">Amazon<\/a> and <a href=\"https:\/\/www.packtpub.com\/product\/template-metaprogramming-with-c\/9781803243450\" target=\"_blank\" rel=\"noopener\">Packtpub<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"740\" src=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbookcover.jpg\" alt=\"\" class=\"wp-image-4544\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbookcover.jpg 600w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbookcover-243x300.jpg 243w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n<\/div>\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcd8 What is this book about?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This book is focused entirely on templates and metaprogramming. You will learn everything from template syntax to variadic templates, from template recursion to argument deduction. You will explore in detail type traits and conditional compilation, constraints and concepts, as well as a variety of patterns such as the Curiously Recuring Template Pattern, mixins, type erasure, type dispatching, and more. You will also learn about containers, iterators, and algorithms, as well as the C++20 ranges library.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udc65 Who is this book for?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This book is primarily intended for beginner to intermediate C++ developers that want to learn templates and generic programming. If you are such a developer, you must have basic C++ knowledge, as the book is not teaching the basics of the language (except for the templates part). However, if you are an experienced C++ developer you can still find the book useful, as it covers a variety of C++20 topics such as concepts, the ranges library, and generic lambdas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcc3 What topics does the book cover?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The book has the following structure (most covered topics are mentioned in parenthesis):<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Chapter 1<\/em> &#8211; <strong>An Introduction to Templates<\/strong> (basic syntax, terminology, history of templates, pros and cons)<\/li><li><em>Chapter 2<\/em> &#8211; <strong>Template Fundamentals<\/strong> (syntax for function templates, class templates, variable templates, alias templates, lambda templates, instantiation, specialization, template parameters)<\/li><li><em>Chapter 3<\/em> &#8211; <strong>Variadic Templates<\/strong> (templates with variable number of arguments, parameter packs, fold expressions)<\/li><li><em>Chapter 4<\/em> &#8211; <strong>Advanced Template Concepts<\/strong> (name binding and dependent names, template recursion, template argument deduction, forwarding references, decltype, std::declval, friends)<\/li><li><em>Chapter 5<\/em> &#8211; <strong>Type Traits and Conditional Compilation<\/strong> (type traits, SFINAE, enable_if, constexpr if, standard type traits library)<\/li><li><em>Chapter 6<\/em> &#8211; <strong>Concepts and Constraints<\/strong> (concepts, requires expressions, composing constraints, constraining templates, abbreviated function templates, standard concepts library)<\/li><li><em>Chapter 7<\/em> &#8211; <strong>Patterns and Idioms<\/strong> (dynamic versus static polymorphism, Curiously Recurring Template Pattern, mixins, type erasure, tag dispatching, expression templates, typelists)<\/li><li><em>Chapter 8<\/em> &#8211; <strong>Ranges and Algorithms<\/strong> (containers, iterators, algorithms, writing a custom container, iterator, and generic algorithm)<\/li><li><em>Chapter 9<\/em> &#8211; <strong>The Ranges Library<\/strong> (range adapters, constrained algorithms, writing a custom range adaptor)<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udc68\u200d\ud83d\udcbb Where is the source code?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">All the code snippets from the book can be found on GitHub in Packt&#8217;s <a href=\"https:\/\/github.com\/PacktPublishing\/Template-Metaprogramming-with-CPP\" target=\"_blank\" rel=\"noopener\">Template-Metaprogramming-with-CPP<\/a> repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can try all the snippets from the book using an online compiler, such as <a href=\"https:\/\/wandbox.org\/\" target=\"_blank\" rel=\"noopener\">Wandbox<\/a> and <a href=\"https:\/\/godbolt.org\/\" target=\"_blank\" rel=\"noopener\">Compiler Explorer<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcac Feedback<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This book is the result of one year of work. I tried to put the things in such a way that they are easy to follow and understand. I can only hope you will find it helpful for learning C++ templates. It is only you that can tell whether I succeeded to create an enjoyable and compelling book. Therefore, your feedback as a review\/rating of the book on Amazon or Packtpub (or any other form) is welcomed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I am pleased to announce that my latest book, Template Metaprogramming with C++ (ISBN 9781803243450), has been published by Packt and can be ordered from both Amazon and Packtpub.<\/p>\n","protected":false},"author":1,"featured_media":4546,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[619,7],"tags":[492,451,543],"class_list":["post-4519","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-books","category-c","tag-book","tag-c","tag-c20"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Marius Bancila\"\/>\n\t<meta name=\"keywords\" content=\"book,c++,c++20\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Marius Bancila&#039;s Blog | About code. Mostly on C++\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"My book \u201cTemplate Metaprogramming with C++\u201d is now available\" \/>\n\t\t<meta property=\"og:description\" content=\"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-08-19T13:09:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-08-19T13:09:33+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"My book \u201cTemplate Metaprogramming with C++\u201d is now available\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#article\",\"name\":\"My book \\u201cTemplate Metaprogramming with C++\\u201d is now available\",\"headline\":\"My book &#8220;Template Metaprogramming with C++&#8221; is now available\",\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/templatesbook.jpg\",\"width\":180,\"height\":222,\"caption\":\"Cover of the Template Metaprogramming with C++ book\"},\"datePublished\":\"2022-08-19T15:09:31+02:00\",\"dateModified\":\"2022-08-19T15:09:33+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#webpage\"},\"articleSection\":\"Books, C++, book, C++, c++20\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"position\":2,\"name\":\"IT\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"position\":3,\"name\":\"Software\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"name\":\"C++\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"position\":4,\"name\":\"C++\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#listItem\",\"name\":\"My book &#8220;Template Metaprogramming with C++&#8221; is now available\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#listItem\",\"position\":5,\"name\":\"My book &#8220;Template Metaprogramming with C++&#8221; is now available\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"name\":\"C++\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Marius Bancila\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Marius Bancila\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#webpage\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/\",\"name\":\"My book \\u201cTemplate Metaprogramming with C++\\u201d is now available\",\"description\":\"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/templatesbook.jpg\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#mainImage\",\"width\":180,\"height\":222,\"caption\":\"Cover of the Template Metaprogramming with C++ book\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2022\\\/08\\\/19\\\/my-book-template-metaprogramming-with-cpp-is-now-available\\\/#mainImage\"},\"datePublished\":\"2022-08-19T15:09:31+02:00\",\"dateModified\":\"2022-08-19T15:09:33+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"My book \u201cTemplate Metaprogramming with C++\u201d is now available","description":"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt.","canonical_url":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/","robots":"max-image-preview:large","keywords":"book,c++,c++20","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#article","name":"My book \u201cTemplate Metaprogramming with C++\u201d is now available","headline":"My book &#8220;Template Metaprogramming with C++&#8221; is now available","author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg","width":180,"height":222,"caption":"Cover of the Template Metaprogramming with C++ book"},"datePublished":"2022-08-19T15:09:31+02:00","dateModified":"2022-08-19T15:09:33+02:00","inLanguage":"en-US","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#webpage"},"isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#webpage"},"articleSection":"Books, C++, book, C++, c++20"},{"@type":"BreadcrumbList","@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/mariusbancila.ro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","position":2,"name":"IT","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","position":3,"name":"Software","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","name":"C++"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","position":4,"name":"C++","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#listItem","name":"My book &#8220;Template Metaprogramming with C++&#8221; is now available"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#listItem","position":5,"name":"My book &#8220;Template Metaprogramming with C++&#8221; is now available","previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","name":"C++"}}]},{"@type":"Organization","@id":"https:\/\/mariusbancila.ro\/blog\/#organization","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","url":"https:\/\/mariusbancila.ro\/blog\/"},{"@type":"Person","@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author","url":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/","name":"Marius Bancila","image":{"@type":"ImageObject","@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g","width":96,"height":96,"caption":"Marius Bancila"}},{"@type":"WebPage","@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#webpage","url":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/","name":"My book \u201cTemplate Metaprogramming with C++\u201d is now available","description":"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#breadcrumblist"},"author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg","@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#mainImage","width":180,"height":222,"caption":"Cover of the Template Metaprogramming with C++ book"},"primaryImageOfPage":{"@id":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/#mainImage"},"datePublished":"2022-08-19T15:09:31+02:00","dateModified":"2022-08-19T15:09:33+02:00"},{"@type":"WebSite","@id":"https:\/\/mariusbancila.ro\/blog\/#website","url":"https:\/\/mariusbancila.ro\/blog\/","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","inLanguage":"en-US","publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Marius Bancila's Blog | About code. Mostly on C++","og:type":"article","og:title":"My book \u201cTemplate Metaprogramming with C++\u201d is now available","og:description":"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt.","og:url":"https:\/\/mariusbancila.ro\/blog\/2022\/08\/19\/my-book-template-metaprogramming-with-cpp-is-now-available\/","article:published_time":"2022-08-19T13:09:31+00:00","article:modified_time":"2022-08-19T13:09:33+00:00","twitter:card":"summary","twitter:title":"My book \u201cTemplate Metaprogramming with C++\u201d is now available","twitter:description":"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt."},"aioseo_meta_data":{"post_id":"4519","title":null,"description":"Book announcement: Template Metaprogramming with C++ (ISBN 9781803243450), my latest book, is now generally available and can be ordered from Amazon and Packt.","keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":{"id":"aioseo-article-63696512f3a74","slug":"article","graphName":"Article","label":"Article","properties":{"type":"BlogPosting","name":"#post_title","headline":"#post_title","description":"#post_excerpt","image":"","keywords":"","author":{"name":"#author_name","url":"#author_url"},"dates":{"include":true,"datePublished":"","dateModified":""}}},"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"},\"blockGraphs\":[]}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2022-08-09 09:52:16","updated":"2025-12-12 07:57:11","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"author_meta":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"featured_img":"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg","jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":["https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg",180,222,false],"thumbnail":["https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook-150x150.jpg",150,150,true],"medium":["https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg",180,222,false],"medium_large":["https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg",180,222,false],"large":["https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg",180,222,false],"1536x1536":["https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg",180,222,false],"2048x2048":["https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg",180,222,false]},"uagb_author_info":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"uagb_comment_info":1,"uagb_excerpt":"I am pleased to announce that my latest book, Template Metaprogramming with C++ (ISBN 9781803243450), has been published by Packt and can be ordered from both Amazon and Packtpub.","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/books\/\" class=\"advgb-post-tax-term\">Books<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/\" class=\"advgb-post-tax-term\">C++<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Books<\/span>","<span class=\"advgb-post-tax-term\">C++<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/\" class=\"advgb-post-tax-term\">book<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/\" class=\"advgb-post-tax-term\">C++<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/\" class=\"advgb-post-tax-term\">c++20<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">book<\/span>","<span class=\"advgb-post-tax-term\">C++<\/span>","<span class=\"advgb-post-tax-term\">c++20<\/span>"]}},"comment_count":"1","relative_dates":{"created":"Posted 4 years ago","modified":"Updated 4 years ago"},"absolute_dates":{"created":"Posted on August 19, 2022","modified":"Updated on August 19, 2022"},"absolute_dates_time":{"created":"Posted on August 19, 2022 3:09 pm","modified":"Updated on August 19, 2022 3:09 pm"},"featured_img_caption":"Cover of the Template Metaprogramming with C++ book","series_order":"","jetpack_shortlink":"https:\/\/wp.me\/pYNdv-1aT","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_featured_media_url":"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2022\/08\/templatesbook.jpg","_links":{"self":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/4519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/comments?post=4519"}],"version-history":[{"count":10,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/4519\/revisions"}],"predecessor-version":[{"id":4545,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/4519\/revisions\/4545"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/media\/4546"}],"wp:attachment":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/media?parent=4519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/categories?post=4519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/tags?post=4519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}