<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های حمیدرضا مداح</title><link>https://virgool.ir/feed/@hamidreza.maddah</link><description></description><language>fa</language><pubDate>2026-11-11 12:46:52</pubDate><image><url>https://files.virgool.ir/upload/users/1671433/avatar/EreB6w.jpeg</url><title>حمیدرضا مداح</title><link>https://virgool.ir/@hamidreza.maddah</link></image><item><title>استفاده از lambda به عنوان functor</title><link>https://virgool.ir/@hamidreza.maddah/استفاده-از-lambda-به-عنوان-functor-pezlkpscxf2y</link><description>int main(){    foo modifier;    int val_to_be_modify = 0;    modifier.modify([](int i){return i+1}, val_to_be_modify);    std::cout &lt;&lt; &#34;modified value: &#34; &lt;&lt; val_to_be_modify;}در این مثال اولین پارامتر ورودی متد modify یک لامبدا است. خروجی: modified value: 1class foo{    public:    template&lt;typename T&gt;    int modify(T t, int val)    {        return t(val);    }}بجای استفاده از lambda می توان کد زیر را استفاده کردclass functor_t{  public:  int operator()(int val)  {    return val+1;  }}int main(){    foo modifier;    int val_to_be_modify = 0;    functor_t functor;    modifier.modify(functor, val_to_be_modify);    std::cout &lt;&lt; &#34;modified value: &#34; &lt;&lt; val_to_be_modify;}</description><category>حمیدرضا مداح</category><author>حمیدرضا مداح</author><pubDate>Tue, 12 Jul 2022 13:37:37 +0430</pubDate></item><item><title>یکی از کاربردهای optioanl در cpp</title><link>https://virgool.ir/@hamidreza.maddah/یکی-از-کاربردهای-optioanl-در-cpp-sypfpzfaka2k</link><description>وقتی نیاز باشد خروجی یک تابع، یا یک تایپ باشد یا null باشد، میتوان از optional استفاده کردهstd::optional&lt;int&gt; foo(int num)&#xA;{&#xA;        if(num%2)&#xA;        {&#xA;                      return std::nullopt;&#xA;        {&#xA;         return num/2;&#xA;}در مثال بالا، اگر عدد ورودی فرد باشد، null برگردانده می شود و اگر زوج باشد، تقسیم بر دو می شود.نحوه استفاده از این تابع به شکل زیر میباشد:void use_foo(int num)&#xA;{&#xA;        auto result = foo(num);&#xA;        if(!result)&#xA;        {&#xA;              std::cout &lt;&lt; result.value();&#xA;        {&#xA;}</description><category>حمیدرضا مداح</category><author>حمیدرضا مداح</author><pubDate>Thu, 30 Jun 2022 12:08:30 +0430</pubDate></item></channel></rss>