{"id":2017,"date":"2020-12-24T16:51:56","date_gmt":"2020-12-24T16:51:56","guid":{"rendered":"https:\/\/www.yazilimperver.com\/?p=2017"},"modified":"2020-12-24T16:51:56","modified_gmt":"2020-12-24T16:51:56","slug":"haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals","status":"publish","type":"post","link":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/","title":{"rendered":"Haftal\u0131k C++ 34 &#8211; Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (&#8220;User-defined literals&#8221;)"},"content":{"rendered":"<p>Merhaba yaz\u0131l\u0131mperver dostlar\u0131m, modern C++ yaz\u0131lar\u0131m\u0131za devam ediyoruz. C++ 11&#8217;den kalan bir ka\u00e7 kabiliyetten biri olan Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezlere (&#8220;user-defined literals&#8221;) g\u00f6z ataca\u011f\u0131z.<\/p>\n<p>Kullan\u0131c\u0131 tan\u0131ml\u0131 olmayan de\u011fi\u015fmezler asl\u0131nda C++ 11&#8217;den \u00f6nce de dilde bulunuyordu (&#8220;built-in type&#8221; olarak nitelenebilir). \u00d6rne\u011fin:<\/p>\n<ul>\n<li>13 (10 luk d\u00fczende 12), 010 (8 lik d\u00fczende 8), 0x13 (16&#8217;l\u0131k d\u00fczende 19) olarak tam say\u0131lar\u0131,<\/li>\n<li>3.14, 2e1, kayan noktal\u0131 say\u0131lar,<\/li>\n<li>&#8216;a&#8217;, &#8216;\\t&#8217;, &#8220;deneme&#8221;, karakter ve metinler,<\/li>\n<\/ul>\n<p>Yukar\u0131dakilerin yan\u0131nda, sonuna eklendikleri say\u0131lar\u0131n tipini ifade eden ekler de mevcut. \u015e\u00f6yle ki:<\/p>\n<ul>\n<li>16U, unsigned int<\/li>\n<li>010L, long<\/li>\n<li>3.14F, float<\/li>\n<li>0x12ULL, unsigned long long<\/li>\n<\/ul>\n<p>\u0130\u015fte C++ 11, bunlar\u0131n yan\u0131nda kendi de\u011fi\u015fmezlerimizi de tan\u0131mlamam\u0131za imkan sa\u011flama olana\u011f\u0131 sunuyor. Burada, elbette bu belirli kaidelere g\u00f6re yap\u0131lmaktad\u0131r ki &#8220;<span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/language\/user_literal\">User-defined literals<\/a>&#8220;<\/strong><\/span> sayfas\u0131nda detayl\u0131 bir \u015fekilde anlat\u0131lmaktad\u0131r ama \u00f6ncesinde bu mekanizma ile kodlar\u0131m\u0131z i\u00e7erisinde neler yapabilece\u011fimize ili\u015fkin \u00f6rneklere bakal\u0131m \ud83d\ude09<\/p>\n<ul>\n<li>Tam say\u0131 de\u011fi\u015fmezlerine \u00f6rne\u011fin _km\/_cm ekleyebiliriz. \u00d6r. <strong>12_km<\/strong>, <strong>126_cm<\/strong>.<\/li>\n<li>Ya da kayan say\u0131 de\u011fi\u015fmezleri ile de bunlar\u0131 kullanabiliriz. \u00d6r. <strong>123.32_km<\/strong><\/li>\n<li>Metinlerle de kullan\u0131labiliyor. \u00d6r. <strong>&#8220;Merhaba&#8221;_str<\/strong> gibi kullan\u0131labilir.<\/li>\n<\/ul>\n<p>\u00d6rneklere bakt\u0131\u011f\u0131n\u0131z zaman, kullan\u0131c\u0131 tan\u0131ml\u0131 de\u011fi\u015fmezlerin izlemesi gereken format hakk\u0131nda bir fikriniz oldu\u011funu d\u00fc\u015f\u00fcn\u00fcyorum. \u015e\u00f6yle ki:<\/p>\n<blockquote><p><strong>&lt;&#8220;Built_in-Literal&#8221;&gt;_&lt;&#8220;Suffix&#8221;&gt;<\/strong><\/p><\/blockquote>\n<p>Format\u0131 g\u00f6rd\u00fck peki bunlar\u0131 nas\u0131l tan\u0131mlayabiliriz. Bu tan\u0131mlamalar, genel olarak de\u011fi\u015fmez operat\u00f6r\u00fc (&#8220;literal operator&#8221;) olarak isimlendiriliyor. Hemen bakal\u0131m nas\u0131l tan\u0131mlayabilece\u011fimize:<\/p>\n<blockquote><p><strong>&lt;D\u00f6n\u00fc\u015fTipi&gt; operator &#8220;&#8221; &lt;SonEk&gt; (&lt;Parametreler&gt;)<\/strong><\/p><\/blockquote>\n<p>\u015eimdi uzunluklar i\u00e7in bunun bir kullan\u0131m\u0131na bakal\u0131m:<\/p>\n<pre class=\"lang:c++ decode:true\">#include&lt;iostream&gt; \r\n#include&lt;iomanip&gt; \r\nusing namespace std; \r\n  \r\n\/\/ Kilometre\r\nlong double operator \"\"_km( long double x ) \r\n{ \r\n    return x * 1000; \r\n} \r\n  \r\n\/\/ Metre\r\nlong double operator \"\" _m( long double x ) \r\n{ \r\n    return x; \r\n} \r\n  \r\n\/\/ Santimetre\r\nlong double operator \"\" _cm( long double x ) \r\n{ \r\n    return x \/ 100.0; \r\n} \r\n  \r\nint main() \r\n{ \r\n    double mesafe = 4.5_km; \r\n    cout &lt;&lt; \"Metre cinsinden mesafe karsiliklari: \" &lt;&lt; '\\n'\r\n         &lt;&lt; mesafe &lt;&lt; '\\n'\r\n         &lt;&lt; setprecision(8) &lt;&lt; ( mesafe + 250.05_m ) &lt;&lt; '\\n'\r\n         &lt;&lt; ( 6.2_km \/ 2.0_m ) &lt;&lt;  '\\n'\r\n         &lt;&lt; ( 1000.0_cm * 100.0_m ) &lt;&lt;  '\\n'\r\n         &lt;&lt; ( 10.0_m * 100.0_m ) &lt;&lt;  '\\n'\r\n         &lt;&lt; ( 0.1_km * 1000.0_cm ) &lt;&lt;  '\\n'; \r\n    return 0; \r\n}<\/pre>\n<p>\u00d6rnekte de g\u00f6rebilece\u011finiz \u00fczere birimler aras\u0131 d\u00f6n\u00fc\u015f\u00fcmleri bu mekanizma sayesinde \u00e7\u00f6zm\u00fc\u015f olduk. Tabi bunu, farkl\u0131 \u015fekillerde de halledebilirdik ama bu \u015fekilde hem de daha okunabilir hem de tip g\u00fcvenli bir kullan\u0131m elde etmi\u015f olduk.<\/p>\n<p>Burada operat\u00f6rleri tan\u0131mlarken dikkat etmeniz gereken bir husus da, ilgili de\u011fi\u015fmez operat\u00f6rlerinde sadece \u015fu tipleri kullanabiliyoruz:<\/p>\n<ul>\n<li><em>unsigned long long int, <\/em><\/li>\n<li><em>long double, <\/em><\/li>\n<li><em>char, <\/em><\/li>\n<li><em>wchar_t, \u00a0<\/em><\/li>\n<li><em>char16_t, <\/em><\/li>\n<li><em>char32_t, <\/em><\/li>\n<li><em>const char *, <\/em><\/li>\n<li><em>(const char * , std::size_t), <\/em><\/li>\n<li><em>(const wchar_t * , std::size_t), <\/em><\/li>\n<li><em>(const char16_t * , std::size_t), <\/em><\/li>\n<li><em>(const char32_t * , std::size_t).<\/em><\/li>\n<\/ul>\n<p>\u015eimdi yukar\u0131daki \u00f6rne\u011fi performans anlam\u0131nda bir ad\u0131m daha \u00f6teye g\u00f6t\u00fcrebiliriz. Nas\u0131l m\u0131? constexpr&#8217;lar\u0131 kullanarak. Bu sayede, d\u00f6n\u00fc\u015f\u00fcmleri derleme zaman\u0131nda hesaplanmas\u0131n\u0131 sa\u011flayabilece\u011fiz. Nas\u0131l yapaca\u011f\u0131z? A\u015fa\u011f\u0131daki gibi \ud83d\ude09<\/p>\n<pre class=\"lang:c++ decode:true\">\/\/ Kilometre\r\nconstexpr long double operator \"\"_km( long double x ) \r\n{ \r\n    return x * 1000; \r\n} \r\n  \r\n\/\/ Metre\r\nconstexpr long double operator \"\" _m( long double x ) \r\n{ \r\n    return x; \r\n} \r\n  \r\n\/\/ Santimetre\r\nconstexpr long double operator \"\" _cm( long double x ) \r\n{ \r\n    return x \/ 100.0; \r\n}<\/pre>\n<p>C++ bir tak\u0131m haz\u0131r de\u011fi\u015fmezler de sunuyor. Bunlar ve hangi C++ standard\u0131 ile sunulduklar\u0131na a\u015fa\u011f\u0131daki tablodan g\u00f6rebilirsiniz:<\/p>\n<table class=\"t-dsc-begin\" style=\"height: 715px;\" width=\"679\">\n<tbody>\n<tr class=\"t-dsc-header\">\n<td colspan=\"2\">\n<div><code>std::literals::complex_literals<\/code>isim uzay\u0131 i\u00e7erisinde tan\u0131ml\u0131 de\u011fi\u015fmezler<\/div>\n<\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/numeric\/complex\/operator&quot;&quot;i\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/numeric\/complex\/operator%22%22i\"><span class=\"t-lines\">operator&#8221;&#8221;ifoperator&#8221;&#8221;ioperator&#8221;&#8221;il<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx14\">(C++14)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td>A\u00a0<span class=\"t-lc\"><a title=\"cpp\/numeric\/complex\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/numeric\/complex\">std::complex<\/a><\/span>\u00a0literal representing pure imaginary number<br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc-header\">\n<td colspan=\"2\">\n<div><code>std::literals::chrono_literals<\/code>isim uzay\u0131 i\u00e7erisinde tan\u0131ml\u0131 de\u011fi\u015fmezler<\/div>\n<\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/chrono\/operator&quot;&quot;h\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/operator%22%22h\"><span class=\"t-lines\">operator&#8221;&#8221;h<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx14\">(C++14)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td>A\u00a0<span class=\"t-lc\"><a title=\"cpp\/chrono\/duration\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/duration\">std::chrono::duration<\/a>,<\/span> <span class=\"t-lc\">saati ifade eder<\/span><br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/chrono\/operator&quot;&quot;min\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/operator%22%22min\"><span class=\"t-lines\">operator&#8221;&#8221;min<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx14\">(C++14)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td>A\u00a0<span class=\"t-lc\"><a title=\"cpp\/chrono\/duration\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/duration\">std::chrono::duration<\/a>, dakikay\u0131 ifade eder<\/span><br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/chrono\/operator&quot;&quot;s\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/operator%22%22s\"><span class=\"t-lines\">operator&#8221;&#8221;s<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx14\">(C++14)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td>A\u00a0<span class=\"t-lc\"><a title=\"cpp\/chrono\/duration\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/duration\">std::chrono::duration<\/a><\/span><span class=\"t-lc\">, saniyeyi ifade eder<\/span><br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/chrono\/operator&quot;&quot;ms\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/operator%22%22ms\"><span class=\"t-lines\">operator&#8221;&#8221;ms<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx14\">(C++14)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td>A\u00a0<span class=\"t-lc\"><a title=\"cpp\/chrono\/duration\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/duration\">std::chrono::duration<\/a><\/span><span class=\"t-lc\">, mili saniyeyi ifade eder<\/span><br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/chrono\/operator&quot;&quot;us\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/operator%22%22us\"><span class=\"t-lines\">operator&#8221;&#8221;us<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx14\">(C++14)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td>A\u00a0<span class=\"t-lc\"><a title=\"cpp\/chrono\/duration\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/duration\">std::chrono::duration<\/a><\/span><span class=\"t-lc\">, mikrosaniyeyi ifade eder<\/span><br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/chrono\/operator&quot;&quot;ns\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/operator%22%22ns\"><span class=\"t-lines\">operator&#8221;&#8221;ns<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx14\">(C++14)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td><span class=\"t-lc\"><a title=\"cpp\/chrono\/duration\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/duration\">std::chrono::duration<\/a>, nano saniyeyi ifade eder<\/span><br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/chrono\/operator&quot;&quot;y\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/operator%22%22y\"><span class=\"t-lines\">operator&#8221;&#8221;y<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx20\">(C++20)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td><span class=\"t-lc\">std::chrono::year,<\/span> y\u0131l\u0131 ifade eder<br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/chrono\/operator&quot;&quot;d\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/chrono\/operator%22%22d\"><span class=\"t-lines\">operator&#8221;&#8221;d<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx20\">(C++20)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td><span class=\"t-lc\">std::chrono::day,<\/span> ay\u0131n g\u00fcn\u00fcn\u00fc ifade eder<br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc-header\">\n<td colspan=\"2\">\n<div><code>std::literals::string_literals<\/code>isim uzay\u0131 i\u00e7erisinde tan\u0131ml\u0131 de\u011fi\u015fmezler<\/div>\n<\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/string\/basic string\/operator&quot;&quot;s\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/string\/basic_string\/operator%22%22s\"><span class=\"t-lines\">operator&#8221;&#8221;s<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx14\">(C++14)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td>Karakter dizisini <code>basic_string<\/code>tipine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr<br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<tr class=\"t-dsc-header\">\n<td colspan=\"2\">\n<div><code>std::literals::string_view_literals<\/code>isim uzay\u0131 i\u00e7erisinde tan\u0131ml\u0131 de\u011fi\u015fmezler<\/div>\n<\/td>\n<\/tr>\n<tr class=\"t-dsc\">\n<td>\n<div class=\"t-dsc-member-div\">\n<div><strong><a title=\"cpp\/string\/basic string view\/operator&quot;&quot;sv\" href=\"https:\/\/en.cppreference.com\/w\/cpp\/string\/basic_string_view\/operator%22%22sv\"><span class=\"t-lines\">operator&#8221;&#8221;sv<\/span><\/a><\/strong><\/div>\n<div><strong><span class=\"t-lines\"><span class=\"t-mark-rev t-since-cxx17\">(C++17)<\/span><\/span><\/strong><\/div>\n<\/div>\n<\/td>\n<td>Karakter dizisine ili\u015fkin string view olu\u015fturur<br \/>\n<span class=\"t-mark\">(function)<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>\u00d6zet olarak, bu mekanizma, tip g\u00fcvenli (type safety) aritmetiksel i\u015flemler ile daha emniyetli ve okunabilir kodlar yazmam\u0131za yard\u0131mc\u0131 oluyor. \u00d6rne\u011fin, bir kullan\u0131c\u0131 tan\u0131ml\u0131 de\u011fi\u015fmez operat\u00f6r\u00fcn\u00fc bulamaz ise derleme hatas\u0131 ile kar\u015f\u0131la\u015fabilirsiniz. Elbette, di\u011fer b\u00fct\u00fcn C++ \u00f6zellikleri gibi \u00e7ok dikkatli kullanman\u0131z gerekiyor, aksi halde ba\u015f\u0131n\u0131za dert a\u00e7abilir.<\/p>\n<p>Kaynaklar k\u0131sm\u0131nda verdi\u011fim <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.modernescpp.com\/index.php\/user-defined-literals\">https:\/\/www.modernescpp.com\/index.php\/user-defined-literals<\/a><\/strong><\/span> sayfas\u0131nda da g\u00fczel ve kapsaml\u0131 bir \u00f6rnek var. O da mesafe birimlerini kullan\u0131yor ama biraz daha farkl\u0131 bir yakla\u015f\u0131mlar. Daha detayl\u0131 bir kullan\u0131m g\u00f6rmek isteyenler bu \u00f6rne\u011fe de g\u00f6z atabilirler.<\/p>\n<p>Evet dostlar, bir C++ 11 \u00f6zelli\u011fine daha birlikte bakm\u0131\u015f olduk. Art\u0131k C++ 11 kabiliyetlerini bitirmeye olduk\u00e7a yakla\u015ft\u0131k. Bir sonraki yaz\u0131mda g\u00f6r\u00fc\u015fmek dile\u011fiyle, kendinize iyi bak\u0131n sa\u011fl\u0131kla kal\u0131n.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Kaynaklar<\/strong><\/span><\/h2>\n<ul>\n<li><a href=\"https:\/\/en.cppreference.com\/w\/cpp\/language\/user_literal\"><strong><span style=\"color: #008000;\">https:\/\/en.cppreference.com\/w\/cpp\/language\/user_literal<\/span><\/strong><\/a><\/li>\n<li><a href=\"http:\/\/www.cplusplus.com\/doc\/hex\/\"><strong><span style=\"color: #008000;\">http:\/\/www.cplusplus.com\/doc\/hex\/<\/span><\/strong><\/a><\/li>\n<li><a href=\"http:\/\/www.open-std.org\/JTC1\/SC22\/wg21\/docs\/papers\/2007\/n2378.pdf\"><strong><span style=\"color: #008000;\">http:\/\/www.open-std.org\/JTC1\/SC22\/wg21\/docs\/papers\/2007\/n2378.pdf<\/span><\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.modernescpp.com\/index.php\/user-defined-literals\"><strong><span style=\"color: #008000;\">https:\/\/www.modernescpp.com\/index.php\/user-defined-literals<\/span><\/strong><\/a><\/li>\n<li><a href=\"https:\/\/www.codeproject.com\/Articles\/447922\/Application-of-Cplusplus11-User-Defined-Literals-t\"><span style=\"color: #008000;\"><strong>https:\/\/www.codeproject.com\/Articles\/447922\/Application-of-Cplusplus11-User-Defined-Literals-t<\/strong><\/span><\/a><\/li>\n<\/ul>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Merhaba yaz\u0131l\u0131mperver dostlar\u0131m, modern C++ yaz\u0131lar\u0131m\u0131za devam ediyoruz. C++ 11&#8217;den kalan bir ka\u00e7 kabiliyetten biri olan Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezlere (&#8220;user-defined literals&#8221;) g\u00f6z ataca\u011f\u0131z. Kullan\u0131c\u0131 tan\u0131ml\u0131 olmayan de\u011fi\u015fmezler asl\u0131nda C++ 11&#8217;den \u00f6nce de dilde bulunuyordu (&#8220;built-in type&#8221; olarak nitelenebilir). \u00d6rne\u011fin: 13 (10 luk d\u00fczende 12), 010 (8 lik d\u00fczende 8), 0x13 (16&#8217;l\u0131k d\u00fczende 19) olarak tam&#8230; <a class=\"more-link\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/\">Continue reading <span class=\"meta-nav\">&#8594;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":174,"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":[823,13,46,824,822],"class_list":["post-2017","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c","category-modern-c","tag-built-in-types","tag-c","tag-c-11","tag-literal-operator","tag-user-defined-literals"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Haftal\u0131k C++ 34 - Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (&quot;User-defined literals&quot;) - 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\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[:tr]Haftal\u0131k C++ 34 - Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (&quot;User-defined literals&quot;)[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"og:description\" content=\"Merhaba yaz\u0131l\u0131mperver dostlar\u0131m, modern C++ yaz\u0131lar\u0131m\u0131za devam ediyoruz. C++ 11&#8217;den kalan bir ka\u00e7 kabiliyetten biri olan Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezlere (&#8220;user-defined literals&#8221;) g\u00f6z ataca\u011f\u0131z. Kullan\u0131c\u0131 tan\u0131ml\u0131 olmayan de\u011fi\u015fmezler asl\u0131nda C++ 11&#8217;den \u00f6nce de dilde bulunuyordu (&#8220;built-in type&#8221; olarak nitelenebilir). \u00d6rne\u011fin: 13 (10 luk d\u00fczende 12), 010 (8 lik d\u00fczende 8), 0x13 (16&#8217;l\u0131k d\u00fczende 19) olarak tam... Continue reading &#8594;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/\" \/>\n<meta property=\"og:site_name\" content=\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-24T16:51:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2017\/12\/FeaturedImage-e1580417052514.png\" \/>\n\t<meta property=\"og:image:width\" content=\"32\" \/>\n\t<meta property=\"og:image:height\" content=\"32\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"5 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\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/\"},\"author\":{\"name\":\"yaz\u0131l\u0131mperver\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"headline\":\"Haftal\u0131k C++ 34 &#8211; Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (&#8220;User-defined literals&#8221;)\",\"datePublished\":\"2020-12-24T16:51:56+00:00\",\"dateModified\":\"2020-12-24T16:51:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/\"},\"wordCount\":839,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"keywords\":[\"built-in types\",\"c++\",\"C++ 11\",\"literal operator\",\"user-defined literals\"],\"articleSection\":[\"C++\",\"Modern C++\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/\",\"url\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/\",\"name\":\"[:tr]Haftal\u0131k C++ 34 - Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (\\\"User-defined literals\\\")[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#website\"},\"datePublished\":\"2020-12-24T16:51:56+00:00\",\"dateModified\":\"2020-12-24T16:51:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.yazilimperver.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Haftal\u0131k C++ 34 &#8211; Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (&#8220;User-defined literals&#8221;)\"}]},{\"@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":"[:tr]Haftal\u0131k C++ 34 - Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (\"User-defined literals\")[:] - 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\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/","og_locale":"tr_TR","og_type":"article","og_title":"[:tr]Haftal\u0131k C++ 34 - Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (\"User-defined literals\")[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","og_description":"Merhaba yaz\u0131l\u0131mperver dostlar\u0131m, modern C++ yaz\u0131lar\u0131m\u0131za devam ediyoruz. C++ 11&#8217;den kalan bir ka\u00e7 kabiliyetten biri olan Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezlere (&#8220;user-defined literals&#8221;) g\u00f6z ataca\u011f\u0131z. Kullan\u0131c\u0131 tan\u0131ml\u0131 olmayan de\u011fi\u015fmezler asl\u0131nda C++ 11&#8217;den \u00f6nce de dilde bulunuyordu (&#8220;built-in type&#8221; olarak nitelenebilir). \u00d6rne\u011fin: 13 (10 luk d\u00fczende 12), 010 (8 lik d\u00fczende 8), 0x13 (16&#8217;l\u0131k d\u00fczende 19) olarak tam... Continue reading &#8594;","og_url":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/","og_site_name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","article_published_time":"2020-12-24T16:51:56+00:00","og_image":[{"width":32,"height":32,"url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2017\/12\/FeaturedImage-e1580417052514.png","type":"image\/png"}],"author":"yaz\u0131l\u0131mperver","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"yaz\u0131l\u0131mperver","Tahmini okuma s\u00fcresi":"5 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/#article","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/"},"author":{"name":"yaz\u0131l\u0131mperver","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"headline":"Haftal\u0131k C++ 34 &#8211; Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (&#8220;User-defined literals&#8221;)","datePublished":"2020-12-24T16:51:56+00:00","dateModified":"2020-12-24T16:51:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/"},"wordCount":839,"commentCount":0,"publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"keywords":["built-in types","c++","C++ 11","literal operator","user-defined literals"],"articleSection":["C++","Modern C++"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/","url":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/","name":"[:tr]Haftal\u0131k C++ 34 - Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (\"User-defined literals\")[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/#website"},"datePublished":"2020-12-24T16:51:56+00:00","dateModified":"2020-12-24T16:51:56+00:00","breadcrumb":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/24\/haftalik-c-34-kullanici-tanimli-degismezler-user-defined-literals\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Ana sayfa","item":"https:\/\/www.yazilimperver.com\/"},{"@type":"ListItem","position":2,"name":"Haftal\u0131k C++ 34 &#8211; Kullan\u0131c\u0131 Tan\u0131ml\u0131 De\u011fi\u015fmezler (&#8220;User-defined literals&#8221;)"}]},{"@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\/2017","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=2017"}],"version-history":[{"count":6,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2017\/revisions"}],"predecessor-version":[{"id":2024,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2017\/revisions\/2024"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media\/174"}],"wp:attachment":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media?parent=2017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/categories?post=2017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/tags?post=2017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}