{"id":2717,"date":"2023-01-05T19:30:53","date_gmt":"2023-01-05T19:30:53","guid":{"rendered":"https:\/\/www.yazilimperver.com\/?p=2717"},"modified":"2023-01-05T19:30:53","modified_gmt":"2023-01-05T19:30:53","slug":"haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler","status":"publish","type":"post","link":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/","title":{"rendered":"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, &#8220;Uniform Initialization&#8221;, Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler"},"content":{"rendered":"<p>Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, C++ 17 yenilikleri ile devam ediyoruz. Bu yaz\u0131mda da bunlardan bir k\u0131sm\u0131na daha de\u011finiyor olaca\u011f\u0131z.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>\u0130sim Uzaylar\u0131 ve Enumerasyonlar i\u00e7in \u00d6znitelikler<\/strong><\/span><\/h2>\n<p>C++ 11 ile birlike bir tak\u0131m \u00f6znitelikler dile eklenmi\u015fti, C++ 17 ile birlikte yeni \u00f6znitelikler ve kullan\u0131mlar\u0131 da eklenmi\u015f durumda. Bu yaz\u0131da, bu \u00f6zniteliklerin detaylar\u0131na girmeyece\u011fiz, neden? \u00c7\u00fcnk\u00fc bunlara zaten de\u011findik, merak edenler i\u00e7in a\u015fa\u011f\u0131daki yaz\u0131ya bakmas\u0131n\u0131 rica ediyorum:<br \/>\n<span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/06\/27\/haftalik-c-30-nitelikler-attributes\/\">Haftal\u0131k C++ 30 \u2013 Nitelikler (\u201cattributes\u201d)<\/a><\/strong><\/span><\/p>\n<p>Bu ba\u015fl\u0131kta ise C++ 17 ile gelen bu \u00f6zniteliklerin kullan\u0131mlar\u0131na ili\u015fkin bir ka\u00e7 hususa de\u011finece\u011fim.<br \/>\nBunlardan ilki, bu \u00f6zniteliklerin, alan uzaylar\u0131 ile de birlikte kullan\u0131m\u0131. Diyelim, k\u00fct\u00fcphane geli\u015ftiriyorsunuz ve art\u0131k kullan\u0131lmas\u0131n\u0131 istemedi\u011finiz API&#8217;leri bir adres uzay\u0131 i\u00e7erisinde toplayarak grupland\u0131rmak isterseniz bu art\u0131k m\u00fcmk\u00fcn olacak. \u015e\u00f6yle ki:<\/p>\n<pre class=\"lang:c++ decode:true \">namespace [[deprecated]] APIv1 {\r\nvoid API();\r\n}\r\n\r\nAPIv1::API(); \/\/ Derleyici uyari verir<\/pre>\n<p>Bunlardan bir di\u011feri ise, bu \u00f6zniteliklerin, enumerat\u00f6rler i\u00e7in de kullan\u0131labilmesidir. Yine hemen bir \u00f6rne\u011fe bakal\u0131m:<\/p>\n<pre class=\"lang:c++ decode:true \">enum class Sehirler { Ankara = 0,\r\n         Van = 1,\r\n         Gaziantep = 2,\r\n         Antep [[deprecated]] = Gaziantep,\r\n};<\/pre>\n<p>Yukar\u0131daki tan\u0131mlamada Gaziantep ve Antep ayn\u0131 numerik de\u011feri ifade etse de, Antep kullan\u0131lmas\u0131 durumunda, derleyici uyar\u0131 verir.<\/p>\n<p>Bu kabiliyete ili\u015fkin detaylar i\u00e7in <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2014\/n4196.html\">N4196<\/a> <\/strong><\/span>\u00f6nerisine bakabilirsiniz.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>&#8220;Uniform Initialization&#8221; Yenilikleri<\/strong><\/span><\/h2>\n<p>C++ 11 ile birlikte &#8220;uniform intialization&#8221;&#8216;\u0131n sunuldu\u011fu ve bu sayede ilklendirme i\u015flevlerinin nas\u0131l ortakland\u0131\u011f\u0131ndan \u00f6nceki yaz\u0131lar\u0131mda bahsetmi\u015ftim. C++ 11 \u00f6ncesinde, de\u011fi\u015fkenlerin ilklendirilmesi i\u00e7in a\u015fa\u011f\u0131daki tan\u0131mlamalar kullanabiliyorduk:<\/p>\n<pre class=\"lang:c++ decode:true \">Varsay\u0131lan \u0130lklendirme (\"default initialization\"): std::string s;\r\nDe\u011fer \u0130lklendirme (\"value initialization\")       : std::string s{};\r\nDirek \u0130lklendirme (\"direct initialization\")      : std::string s(\"demo\");\r\nKopya \u0130lklendirme (\"copy initialization\")        : std::string s = \"demo\";\r\nListe \u0130lklendirme (\"list initialization\")        : std::string s{'d', 'e', 'm', 'o'};\r\nToplu \u0130lklendirme (\"aggregate initialization\")   : char s[5] = {'d', 'e', 'm', 'o'};\r\nReferans \u0130lklendirme (\"reference initialization\"): char&amp; c = s[0];<\/pre>\n<p>C++ 11 ile birlikte, bu tan\u0131mlamalar\u0131 ikiye indirebildik (yukar\u0131daki ilklendirmeler halen ge\u00e7erli tabi). \u015e\u00f6yle ki:<\/p>\n<pre class=\"lang:c++ decode:true \">Direk Liste \u0130lklendirme (\"direct list initialization\"): T object {arg1, arg2, ...};\r\nDe\u011fer Liste \u0130lklendirme (\"copy list initialization\")  : T object = {arg1, arg2, ...};<\/pre>\n<p>Fakat, bu kullan\u0131m bir tak\u0131m s\u0131k\u0131nt\u0131lara yol a\u00e7abiliyordu. \u00d6zellikle auto tan\u0131mlamalar\u0131nda.<br \/>\n\u00d6ncelikle, <em>auto<\/em> ile kullan\u0131m durumlar\u0131nda, tipin kendisi yerine yine std::initializer_list tipi \u00e7\u0131kar\u0131m\u0131nda bulunuluyordu. Yani, a\u015fa\u011f\u0131daki tan\u0131mlamalar\u0131n hepsi i\u00e7in \u00e7\u0131kar\u0131lan tip <em>std::initializer_list&lt;int&gt;<\/em>&#8216;di.<\/p>\n<pre class=\"lang:c++ decode:true \">auto a = {42};   \/\/ std::initializer_list&lt;int&gt;\r\nauto b {42};     \/\/ std::initializer_list&lt;int&gt;\r\nauto c = {1, 2}; \/\/ std::initializer_list&lt;int&gt;\r\nauto d {1, 2};   \/\/ std::initializer_list&lt;int&gt;. Dikkat: -fpermissive ile derlemek gerekebilir<\/pre>\n<p>Bu durumlar\u0131n yan\u0131nda, auto d\u00f6n\u00fc\u015f tipine sahip fonksiyonlar i\u00e7in de benzer bir problem olmakta. Bu durumlar\u0131n \u00f6n\u00fcne ge\u00e7mek i\u00e7in, C++ 17 ile birlikte iki yeni kural tan\u0131mland\u0131:<\/p>\n<ol>\n<li>Birden fazla de\u011fer i\u00e7eren {} ilklendirmeleri, auto de\u011fi\u015fkenler i\u00e7in &#8220;ill-formed&#8221;, hatal\u0131, kabul edilecek (yukar\u0131daki d\u00f6rd\u00fcnc\u00fc sat\u0131r),<\/li>\n<li>{} i\u00e7erisinde tek bir eleman var ise bu, auto de\u011fi\u015fken i\u00e7in \u00e7\u0131kar\u0131m olarak std::initializer_list <strong>yerine<\/strong> bu eleman\u0131n tipi kullan\u0131lacak, \u00e7oklu eleman durumunda ise eskisi gibi davranacak. Yani, yukar\u0131daki tan\u0131mlamalar i\u00e7in, C++ 17 ile birlikte, \u00e7\u0131kar\u0131mda bulunan tipler a\u015fa\u011f\u0131daki gibi olacak:<\/li>\n<\/ol>\n<pre class=\"lang:c++ decode:true \">auto a = {42}; \/\/ std::initializer_list&lt;int&gt;\r\nauto b {42}; \/\/ int\r\nauto c = {1, 2}; \/\/ std::initializer_list&lt;int&gt;\r\nauto d {1, 2}; \/\/ hata<\/pre>\n<p>Detaylar i\u00e7in <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2014\/n3922.html\">N3922<\/a> <\/strong><\/span>sayfas\u0131na g\u00f6z atabilirsiniz.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Enumerasyon \u0130lklendirme<\/strong><\/span><\/h2>\n<p>C++ 11 ile birlikte gelen enumerasyon s\u0131n\u0131flar, normalde tan\u0131mland\u0131klar\u0131 temel tipler ile ilklendirilememekteydiler. C++ 17 ile bu m\u00fcmk\u00fcn art\u0131k:<\/p>\n<pre class=\"lang:c++ decode:true\">enum class Handle : uint32_t { \r\n      Valid = 0,\r\n      NotValid = 1 \r\n};\r\n\r\nHandle h { 42 }; \/\/ C++ 17 \u00f6ncesi derleme hatas\u0131, sonras\u0131 i\u00e7in uygun<\/pre>\n<p>Bu ve benzeri kullan\u0131mlar i\u00e7in <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.nextptr.com\/tutorial\/ta1425731095\/typesafe-integer-types-with-list-initialization-of-scoped-enums\">https:\/\/www.nextptr.com\/tutorial\/ta1425731095\/typesafe-integer-types-with-list-initialization-of-scoped-enums<\/a><\/strong><\/span> sayfas\u0131na da g\u00f6z atabilirsiniz.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Kald\u0131r\u0131lan \u00d6zellikler<\/strong><\/span><\/h2>\n<p>C++ 17 ile birlikte bir tak\u0131m \u00f6zellikler de art\u0131k dilden \u00e7\u0131kar\u0131lm\u0131\u015f durumda. Bunlar\u0131n detaylar\u0131na \u00e7ok girmeyece\u011fim, keza art\u0131k yoklar \ud83d\ude42 Elbette merak edenler i\u00e7in ilgili ba\u011flant\u0131lar\u0131 ekliyor olaca\u011f\u0131m. \u015eimdi bu kabiliyetlere bakal\u0131m:<\/p>\n<ul>\n<li>operator++(bool) her ne kadar \u00e7ok \u00f6nceleri &#8220;deprecated&#8221; olarak i\u015faretlense de, dilde bulunmaktayd\u0131. C++ 17 ile birlikte silinmi\u015f durumda<\/li>\n<li>&#8220;trigraph&#8221;&#8216;lar da dilden \u00e7\u0131kar\u0131lm\u0131\u015f durumda (\u015fu ana kadar hi\u00e7 kullanmad\u0131m, merak edenler \u015fu sayfaya g\u00f6z atabilirler: <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.geeksforgeeks.org\/trigraphs-in-c-with-examples\/\">https:\/\/www.geeksforgeeks.org\/trigraphs-in-c-with-examples\/<\/a><\/strong><\/span><\/li>\n<li>register anahtar kelimesi \u00e7\u0131kar\u0131lm\u0131\u015f durumda (bir tak\u0131m derleyiciler uyar\u0131 vererek kodu derlese de, dilden \u00e7\u0131kar\u0131lm\u0131\u015f durumda)<\/li>\n<li>Dinamik istisna tan\u0131mlamalar\u0131 \u00e7\u0131kar\u0131lm\u0131\u015f durumda, buna ili\u015fkin detaylar i\u00e7in de <strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/language\/except_spec\">https:\/\/en.cppreference.com\/w\/cpp\/language\/except_spec<\/a><\/span><\/strong><\/li>\n<li>std::auto_ptr, C++ 11 ile eklenmi\u015f bu kabiliyet, C++ 17 ile \u00e7\u0131kar\u0131lm\u0131\u015f durumda. std::unique_ptr ve ta\u015f\u0131ma semanti\u011fi ile bu kabiliyetin \u00e7ok bir anlam\u0131 kalm\u0131yor. Buna ili\u015fkin a\u00e7\u0131klamay\u0131 da Herb Sutter \u015fu yaz\u0131s\u0131nda g\u00fczel anlat\u0131yor: <a href=\"https:\/\/herbsutter.com\/2013\/05\/29\/gotw-89-solution-smart-pointers\/\"><span style=\"color: #008000;\"><strong>https:\/\/herbsutter.com\/2013\/05\/29\/gotw-89-solution-smart-pointers\/<\/strong><\/span><\/a><\/li>\n<li>std::random_shuffle API&#8217;leri \u00e7\u0131kar\u0131lm\u0131\u015f durumdad\u0131r. Bunun arkas\u0131nda yatan motivasyona da <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/meetingcpp.com\/blog\/items\/stdrandom_shuffle-is-deprecated.html\">https:\/\/meetingcpp.com\/blog\/items\/stdrandom_shuffle-is-deprecated.html<\/a><\/strong><\/span> sayfas\u0131ndan g\u00f6z atabilirsiniz.<\/li>\n<\/ul>\n<p>Evet sevgili dostlar bir yaz\u0131m\u0131z\u0131n daha sonuna gelmi\u015f bulunuyoruz. C++ 17&#8217;nin de bir \u00e7ok kabiliyetini i\u015flemi\u015f olduk. Bundan sonra art\u0131k, C++ 20&#8217;ye ili\u015fkin kabiliyetlere ya da \u00f6rnek kullan\u0131mlara e\u011filiyor olaca\u011f\u0131z. Bir sonraki yaz\u0131ma bol kodlu g\u00fcnler diliyorum \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, C++ 17 yenilikleri ile devam ediyoruz. Bu yaz\u0131mda da bunlardan bir k\u0131sm\u0131na daha de\u011finiyor olaca\u011f\u0131z. \u0130sim Uzaylar\u0131 ve Enumerasyonlar i\u00e7in \u00d6znitelikler C++ 11 ile birlike bir tak\u0131m \u00f6znitelikler dile eklenmi\u015fti, C++ 17 ile birlikte yeni \u00f6znitelikler ve kullan\u0131mlar\u0131 da eklenmi\u015f durumda. Bu yaz\u0131da, bu \u00f6zniteliklerin detaylar\u0131na girmeyece\u011fiz, neden? \u00c7\u00fcnk\u00fc bunlara zaten&#8230; <a class=\"more-link\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/\">Continue reading <span class=\"meta-nav\">&#8594;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[10,41],"tags":[398,755,1065,1064,42,1062,1063],"class_list":["post-2717","post","type-post","status-publish","format-standard","hentry","category-c","category-modern-c","tag-c-14","tag-deprecated","tag-deprecated-features","tag-list-initialization-of-scoped-enums","tag-modern-c","tag-oznitelikler","tag-uniform-initialization-of-auto"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, &quot;Uniform Initialization&quot;, Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131<\/title>\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.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, &quot;Uniform Initialization&quot;, Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"og:description\" content=\"Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, C++ 17 yenilikleri ile devam ediyoruz. Bu yaz\u0131mda da bunlardan bir k\u0131sm\u0131na daha de\u011finiyor olaca\u011f\u0131z. \u0130sim Uzaylar\u0131 ve Enumerasyonlar i\u00e7in \u00d6znitelikler C++ 11 ile birlike bir tak\u0131m \u00f6znitelikler dile eklenmi\u015fti, C++ 17 ile birlikte yeni \u00f6znitelikler ve kullan\u0131mlar\u0131 da eklenmi\u015f durumda. Bu yaz\u0131da, bu \u00f6zniteliklerin detaylar\u0131na girmeyece\u011fiz, neden? \u00c7\u00fcnk\u00fc bunlara zaten... Continue reading &#8594;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/\" \/>\n<meta property=\"og:site_name\" content=\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-05T19:30:53+00:00\" \/>\n<meta name=\"author\" content=\"yaz\u0131l\u0131mperver\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"yaz\u0131l\u0131mperver\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/\"},\"author\":{\"name\":\"yaz\u0131l\u0131mperver\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"headline\":\"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, &#8220;Uniform Initialization&#8221;, Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler\",\"datePublished\":\"2023-01-05T19:30:53+00:00\",\"dateModified\":\"2023-01-05T19:30:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/\"},\"wordCount\":758,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"keywords\":[\"C++ 14\",\"deprecated\",\"deprecated features\",\"list initialization of scoped enums\",\"Modern C++\",\"\u00f6znitelikler\",\"uniform initialization of auto\"],\"articleSection\":[\"C++\",\"Modern C++\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/\",\"url\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/\",\"name\":\"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, \\\"Uniform Initialization\\\", Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#website\"},\"datePublished\":\"2023-01-05T19:30:53+00:00\",\"dateModified\":\"2023-01-05T19:30:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.yazilimperver.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, &#8220;Uniform Initialization&#8221;, Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.yazilimperver.com\/#website\",\"url\":\"https:\/\/www.yazilimperver.com\/\",\"name\":\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"description\":\"Payla\u015fmak g\u00fczeldir.\",\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.yazilimperver.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\",\"name\":\"yaz\u0131l\u0131mperver\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"contentUrl\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"caption\":\"yaz\u0131l\u0131mperver\"},\"logo\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, \"Uniform Initialization\", Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","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.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/","og_locale":"tr_TR","og_type":"article","og_title":"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, \"Uniform Initialization\", Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","og_description":"Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, C++ 17 yenilikleri ile devam ediyoruz. Bu yaz\u0131mda da bunlardan bir k\u0131sm\u0131na daha de\u011finiyor olaca\u011f\u0131z. \u0130sim Uzaylar\u0131 ve Enumerasyonlar i\u00e7in \u00d6znitelikler C++ 11 ile birlike bir tak\u0131m \u00f6znitelikler dile eklenmi\u015fti, C++ 17 ile birlikte yeni \u00f6znitelikler ve kullan\u0131mlar\u0131 da eklenmi\u015f durumda. Bu yaz\u0131da, bu \u00f6zniteliklerin detaylar\u0131na girmeyece\u011fiz, neden? \u00c7\u00fcnk\u00fc bunlara zaten... Continue reading &#8594;","og_url":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/","og_site_name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","article_published_time":"2023-01-05T19:30:53+00:00","author":"yaz\u0131l\u0131mperver","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"yaz\u0131l\u0131mperver","Tahmini okuma s\u00fcresi":"4 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/#article","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/"},"author":{"name":"yaz\u0131l\u0131mperver","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"headline":"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, &#8220;Uniform Initialization&#8221;, Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler","datePublished":"2023-01-05T19:30:53+00:00","dateModified":"2023-01-05T19:30:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/"},"wordCount":758,"commentCount":0,"publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"keywords":["C++ 14","deprecated","deprecated features","list initialization of scoped enums","Modern C++","\u00f6znitelikler","uniform initialization of auto"],"articleSection":["C++","Modern C++"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/","url":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/","name":"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, \"Uniform Initialization\", Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/#website"},"datePublished":"2023-01-05T19:30:53+00:00","dateModified":"2023-01-05T19:30:53+00:00","breadcrumb":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yazilimperver.com\/index.php\/2023\/01\/05\/haftalik-c-53-yeni-oznitelik-uniform-initialization-enumerasyon-ozellikleri-ve-cikarilan-ozellikler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Ana sayfa","item":"https:\/\/www.yazilimperver.com\/"},{"@type":"ListItem","position":2,"name":"Haftal\u0131k C++ 53 \u2013 Yeni \u00d6znitelik, &#8220;Uniform Initialization&#8221;, Enumerasyon \u00d6zellikleri ve \u00c7\u0131kar\u0131lan \u00d6zellikler"}]},{"@type":"WebSite","@id":"https:\/\/www.yazilimperver.com\/#website","url":"https:\/\/www.yazilimperver.com\/","name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","description":"Payla\u015fmak g\u00fczeldir.","publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yazilimperver.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb","name":"yaz\u0131l\u0131mperver","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/","url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","contentUrl":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","caption":"yaz\u0131l\u0131mperver"},"logo":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/comments?post=2717"}],"version-history":[{"count":2,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2717\/revisions"}],"predecessor-version":[{"id":2719,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2717\/revisions\/2719"}],"wp:attachment":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media?parent=2717"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/categories?post=2717"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/tags?post=2717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}