<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
    <channel>
        <title>Lyn&apos;s Article</title>
        <link>http://www.lunapiece.net/Article</link>
        <description></description>
        <language>ko</language>
        <pubDate>Thu, 09 Feb 2012 21:12:51 +0900</pubDate>
        <lastBuildDate>Thu, 09 Feb 2012 21:12:51 +0900</lastBuildDate>
        <generator>XpressEngine 1.5.1.6</generator>
                                <item>
            <title>C++11 lambda 간단사용법과 성능비교.</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27419</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27419</guid>
                        <comments>http://www.lunapiece.net/27419#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;C++의 STL 에서는 여러가지 알고리즘을 제공한다.&lt;br /&gt;그중 &quot;임의의&quot; 동작을 할 수 있는 알고리즘들은 그 &quot;동작&quot; 의 대상이 되는 인자를 받도록 되어 있는데,&amp;nbsp;&lt;br /&gt;그 &quot;동작&quot;의 조건은&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 18px; &quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0); font-size: 18px; &quot;&gt;()연산자로 호출이 가능할것&lt;/span&gt;&lt;/b&gt;! 이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그 동작을 만족시키는것은 C에서는 함수가 있다.&lt;br /&gt;또 C++에서는 STL 과 함께 소개된 함수객체(Functor)가 있으며, STL 초기부터 제공된 bind1st, bind2nd가 있고, boost에서 제공되는 mem_fn 도 있으며, 이 모든것을 통합한 범용 bind(C++11 or boost에 포함)도 존재한다.&lt;/p&gt;&lt;p&gt;그리고 최신의 C++11 표준에 포함된 lambda도 있고, boost의 lambda도 있지만, 이쪽은 C++11 표준에 lambda가 포함 된 이상 더이상 쓸 일은 없을테니 이번 실험에선 제외한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;실험순서는 전역함수, bind된 전역함수, 함수객체, 람다, bind된 람다, auto를 이용해 bind된 람다 의 순이다.&lt;/p&gt;&lt;p&gt;실험은 Visual C++ 2010 Sp1, x86 Debug Build에서 테스트 하엿다. Release Mode 도 특성은 동일하다.&lt;/p&gt;&lt;p&gt;궂이 Debug Build로 테스트 한 이유는 Release모드에서 자꾸 전역함수를 inline화 시키는 바람에 =_=;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;코드 나간다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;table style=&quot;background:#CCCCCC&quot; cellspacing=&quot;1&quot;&gt;&lt;tbody&gt;&lt;tr style=&quot;background:#FFFFFF&quot;&gt;&lt;td&gt;&lt;pre style=&quot;font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;cstdlib&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;cstdio&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;vector&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;random&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;cstdint&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;algorithm&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;functional&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color:blue;&quot;&gt;#include&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;&amp;lt;windows.h&amp;gt;&lt;/span&gt;
 
&lt;span style=&quot;color:blue;&quot;&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;namespace&lt;/span&gt;&amp;nbsp;std;
 
&lt;span style=&quot;color:blue;&quot;&gt;__int64&lt;/span&gt;&amp;nbsp;g_NumberSum;
 
&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;&amp;nbsp;GetSumFunction(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
{
	g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
}
 
&lt;span style=&quot;color:blue;&quot;&gt;struct&lt;/span&gt;&amp;nbsp;GetSumFunctor
{
	&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;operator&lt;/span&gt;()(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
	{
		g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
	}
};
 
&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;&amp;nbsp;wmain()
{
	&lt;span style=&quot;color:blue;&quot;&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;NUMBER_COUNT&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;100000000&lt;/span&gt;;
 
	mt19937_64&amp;nbsp;RandomEngine;
	uniform_int&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;RandomRange(&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;INT32_MAX);
	RandomEngine.seed(GetTickCount());
 
	vector&amp;lt;&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;RandumNumbers;
	RandumNumbers.reserve(NUMBER_COUNT);
	&lt;span style=&quot;color:blue;&quot;&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;NUMBER_COUNT;&amp;nbsp;++i)
	{
		RandumNumbers.push_back(RandomRange(RandomEngine));
	}
 
	DWORD&amp;nbsp;Tick;
&lt;span style=&quot;color:green;&quot;&gt;//function&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;GetSumFunction);
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Global&amp;nbsp;Function&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//bind&amp;nbsp;function&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	function&amp;lt;&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;)&amp;gt;&amp;nbsp;FunctionObject&amp;nbsp;=&amp;nbsp;bind(&amp;amp;GetSumFunction,&amp;nbsp;tr1::placeholders::_1);
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;FunctionObject);
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Bind&amp;nbsp;Function&amp;nbsp;&amp;nbsp;&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//functor&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();	
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;GetSumFunctor());
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Functor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//C++&amp;nbsp;11&amp;nbsp;Lambda&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;
		[](&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
		{
			g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
		});
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;C++11&amp;nbsp;Lambda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//C++11&amp;nbsp;Bind&amp;nbsp;Lambda&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	function&amp;lt;&lt;span style=&quot;color:blue;&quot;&gt;void&lt;/span&gt;(&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;)&amp;gt;&amp;nbsp;BindLambda&amp;nbsp;=&amp;nbsp;
		[](&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
		{
			g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
		};
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;BindLambda);
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Bind&amp;nbsp;Lambda&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);
&lt;span style=&quot;color:green;&quot;&gt;//C++11&amp;nbsp;Auto&amp;nbsp;bind&amp;nbsp;Lambda&lt;/span&gt;
	g_NumberSum&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color:red;&quot;&gt;0&lt;/span&gt;;
	Tick&amp;nbsp;=&amp;nbsp;GetTickCount();
	&lt;span style=&quot;color:blue;&quot;&gt;auto&lt;/span&gt;&amp;nbsp;AutoBindLambda&amp;nbsp;=&amp;nbsp;
		[](&lt;span style=&quot;color:blue;&quot;&gt;int&lt;/span&gt;&amp;nbsp;Num)
		{
			g_NumberSum&amp;nbsp;=&amp;nbsp;g_NumberSum&amp;nbsp;+&amp;nbsp;Num;
		};
	for_each(RandumNumbers.begin(),&amp;nbsp;RandumNumbers.end(),&amp;nbsp;AutoBindLambda);
	printf(&lt;span style=&quot;color:red;&quot;&gt;&quot;Auto&amp;nbsp;Bind&amp;nbsp;Lambda::&amp;nbsp;Sum&amp;nbsp;:&amp;nbsp;%I64d,&amp;nbsp;Time&amp;nbsp;:&amp;nbsp;%dms\n&quot;&lt;/span&gt;,&amp;nbsp;g_NumberSum,&amp;nbsp;GetTickCount()&amp;nbsp;-&amp;nbsp;Tick);&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;font-family: NanumGothicCoding; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; background-position: initial initial; background-repeat: initial initial; &quot;&gt;&lt;span style=&quot;background-color: white; &quot;&gt;}&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래는 결과이다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://lunapiece.net/files/attach/images/434/419/027/be84973e4db0a1e5be5b28a08f4dec80.png&quot; alt=&quot;lambda.png&quot; class=&quot;iePngFix&quot; width=&quot;677&quot; height=&quot;442&quot; style=&quot;&quot; /&gt;
&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결과를 보면 lambda 가 가장 빠른 것을 볼 수 있다. 길게 나불대지 않고 성능 이슈와 원인을 아래 간략히 적어본다.&lt;br /&gt;1. 전역함수의 경우 함수 Call 오버헤드에 의해 속도가 조금 감소하엿다.&lt;/p&gt;&lt;p&gt;2. lambda, functor 는 사실상 오차범위 내의 차이라고 보인다.&lt;/p&gt;&lt;p&gt;3. bind lambda 의 경우는 std::fuction 객체가 함수호출 정보를 RTTI에 의존하는 특징때문에 속도를 왕창 까먹게 된다.&lt;/p&gt;&lt;p&gt;4. bind 된 전역함수의 경우는 RTTI의 오버헤드 + 함수호출로 인해 가장 느려진다.&lt;/p&gt;&lt;p&gt;5. auto를 사용해 변수에 저장한 lambda 는 std::fuction객체에 저장 하는 것이 아니라 일종의 inline 함수처럼 구현해준다. 그래서 오버헤드가 전혀 없이 빠른 속도를 보여준다. 즉 같은 함수객체를 2번이상 이용 할 경우 코드를 Copy&amp;amp;Paste 하지 않아도 auto를 이용하면 성능과 중복방지 두마리 코드를 다 잡을 수 있다.&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 29 Jan 2012 16:46:38 +0900</pubDate>
                                </item>
                <item>
            <title>Boost 빌드 방법</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27356</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27356</guid>
                        <comments>http://www.lunapiece.net/27356#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;1. Gem 만들기&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;bootstrap 실행 -&amp;gt; b2 실행파일이 생성&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;1.48.0에선 bjam -&amp;gt; b2 로 바뀌었다. 근데 bjam 도 그대로 된다 (...) 같은걸 2개 만들어줌&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;2. b2 빌드옵션&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;toolset=&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ 컴파일러 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;--buildtype=&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ 빌드방법 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;--libdir=&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ output 폴더 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;--architecture=&amp;lt;&amp;gt; &amp;nbsp; ▷ target platform 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;address-model=&amp;lt;&amp;gt; &amp;nbsp;▷ bit수 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;install &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ 빌드방법 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;define=&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ define 상수 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;-j&amp;lt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;▷ 병렬컴파일할 코어갯수 설정&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14px; &quot;&gt;절대로 = 앞뒤에 공백 넣지 말것. 반드시 원하는 컴파일러/bit수의 Command Prompt &amp;nbsp;에서 실행할것&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;3. 예제&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;vc++ 2010으로 모든형태의 라이브러리(debug dll, debug static, release dll, release static)를 CRT 버전을 최신으로 하여 특정 Path에 &amp;nbsp;쿼드코어로 빌드 할경우&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;AMD64(EM64T)는 x86 아키텍쳐에 address 를 64bit로 지정해야한다. x64, AMD64, EM64T 등의 키워드는 불가능&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&quot;text-align: left;&quot;&gt;32bit build&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;b2 -j4 toolset=msvc-10.0 --build-type=complete define=_BIND_TO_CURRENT_VCLIBS_VERSION &amp;nbsp;--libdir=c:\library\boost\lib\i386 install&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&quot;text-align: left;&quot;&gt;64bit build&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;b2 -j4 toolset=msvc-10.0 --build-type=complete &amp;nbsp;define=_BIND_TO_CURRENT_VCLIBS_VERSION --libdir=c:\library\boost\lib\amd64 architecture=x86 address-model=64 install&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 13 Jan 2012 15:40:31 +0900</pubDate>
                                    <slash:comments>1</slash:comments>
                    </item>
                <item>
            <title>DLLMain에서 하지 말아야 할것.</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27343</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27343</guid>
                        <comments>http://www.lunapiece.net/27343#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;DLLMain은 WinMain 이나 main 과는 다르게 제약이 많다.&lt;/p&gt;&lt;p&gt;나도 이걸로 크래시 낸 적이 &lt;strike&gt;많이&lt;/strike&gt;몇번 있고 ...&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DLLMain은 일종의 &quot;객체의생성자&quot; 라고 보면 비슷하다.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&quot;로딩중&quot; 인 것이지 로딩이 끝난것이 아니다&lt;/b&gt; 라는것이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래에는 Attach 시 기준으로 적었지만, Detach 에도 별 다를건 없다. kerner32.dll 이외의 dll은 이미 언로딩 되어있을 수도 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제 하지 말아야할것을 슬~슬 나열 해 보자.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. kernel32.dll 이외의 dll에 있는 함수 대부분.&lt;/p&gt;&lt;p&gt;kernel32.dll 이외의 dll이 로딩되어 있다는 보장은 전혀없다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. 동기화코드&lt;/p&gt;&lt;p&gt;락, 언락 등의 코드&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. LoadLibrary, CreateProcess&lt;/p&gt;&lt;p&gt;다른 DLL 쓰지말라는말과 일맥상통.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4. 전역객체 초기화, 메모리할당 등&lt;/p&gt;&lt;p&gt;메모리메니저가 로딩되었다는 보장이 없다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. COM관련 코드&lt;/p&gt;&lt;p&gt;역시 보장없다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;6. 예외 throw&lt;/p&gt;&lt;p&gt;C++ 객체 생성자에서 throw 하는것과 비슷한 대략므흣한 (...) 상황이 발생한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결론.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;DLLMain은 걍 비워 둬라&lt;/b&gt;. 그리고 Initialize 함수를 제공해라.&lt;br /&gt;상당수의 라이브러리가 라이브러리 초기화 함수를 제공하는것은 다 이유가 있다!&lt;/p&gt;&lt;p&gt;(당장 GDI+와 Winsock2를 생각해봐라!)&amp;nbsp;
&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 12 Jan 2012 00:07:10 +0900</pubDate>
                                </item>
                <item>
            <title>새해다 ...</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27324</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27324</guid>
                        <comments>http://www.lunapiece.net/27324#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;


뭐 업다 18 ㅜㅜ&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sat, 31 Dec 2011 22:14:10 +0900</pubDate>
                                </item>
                <item>
            <title>Trac, Mantis, Redmine + SVN 소스 한글 깨짐</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27283</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27283</guid>
                        <comments>http://www.lunapiece.net/27283#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Trac, Mantis, Redmine 은 기본적으로 UTF-8을 사용한다.&lt;/p&gt;&lt;p&gt;그러나 VC++은 소스를 ascii로 저장하기 때문에 저장소 연동을 하면 소스에서 한글이 다 박살난 채로 보이게 된다.&lt;/p&gt;&lt;p&gt;이것을 해결하기위해서는 소스를 UTF-8로 저장 해야 되는데, 저장시 자동으로 UTF-8로 변환을 하는 매크로가 있다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;MacroIDE -&amp;gt; EnviromentEvents에&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Imports System.IO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;추가 한다. 그 아래에&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Sub MakeUTF8File(ByVal path As String)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim input As New FileStream(path, FileMode.Open)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &apos;Check BOM&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim isUTF8 As Boolean = (input.ReadByte = &amp;amp;HEF And input.ReadByte = &amp;amp;HBB And input.ReadByte = &amp;amp;HBF)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; input.Close()&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; If (Not isUTF8) Then&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim s As String&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s = File.ReadAllText(path, System.Text.Encoding.Default)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; File.WriteAllText(path, s, System.Text.Encoding.UTF8)&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; End If&lt;/p&gt;&lt;p&gt;End Sub&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Public Sub DocumentEvents_DocumentSaved(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentSaved&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Dim path As String = Document.FullName&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; MakeUTF8File(path)&lt;/p&gt;&lt;p&gt;End Sub&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;를 추가한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;PS. trac은 지금 안 쓰고있어 확인이 안되는데 redmine 은 그냥 소스 인코딩을 추가해주면 간단히 해결된다 (...) 걍 euc-kr 등록해두자&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Tue, 20 Dec 2011 12:22:05 +0900</pubDate>
                                </item>
                <item>
            <title>MultiMedia Timer 의 Timer 해상도의 비밀</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27266</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27266</guid>
                        <comments>http://www.lunapiece.net/27266#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;멀티미디어 타이머를 시작하기 위해 timeSetEvent 를 호출하면&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://lunapiece.net/files/attach/images/434/266/027/ba512d5c5c4b883de377e8538ae38272.png&quot; alt=&quot;1.png&quot; class=&quot;iePngFix&quot; width=&quot;947&quot; height=&quot;535&quot; style=&quot;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://lunapiece.net/files/attach/images/434/266/027/504c0e75644a4dd3d4b94fcffe390804.png&quot; alt=&quot;2.png&quot; class=&quot;iePngFix&quot; width=&quot;771&quot; height=&quot;1561&quot; style=&quot;&quot; /&gt;




&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결과적으로 timeBeginPeriod 가 호출된다.&lt;/p&gt;&lt;p&gt;멀티미디어 타이머 해상도의 비밀은 timeBeginPeriod 이었던것!&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 14 Dec 2011 10:18:47 +0900</pubDate>
                                </item>
                <item>
            <title>Intel Cilk plus And SampleCode - Parallel Programming</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27248</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27248</guid>
                        <comments>http://www.lunapiece.net/27248#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Cilk plus 자료와 Sample Code&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Tue, 22 Nov 2011 18:22:35 +0900</pubDate>
                                </item>
                <item>
            <title>Visaul Studio Exception 발생시 해결방법</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27236</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27236</guid>
                        <comments>http://www.lunapiece.net/27236#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;div&gt;VS2010에서 코드를 치려고 하면 아래와 같은 팝업이 뜨면서 툴이 제대로 동작 하지 않는 경우가 있다.&lt;/div&gt;&lt;div&gt;(주로 빨간줄 잘못긋기, 인텔리센스 맛가기 등등 ...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://lunapiece.net/files/attach/images/434/236/027/c6c93b50610f98a2195b9ca80f90d5b2.PNG&quot; alt=&quot;Visual Studio has encountered an exception.PNG&quot; class=&quot;iePngFix&quot; width=&quot;487&quot; height=&quot;234&quot; style=&quot;&quot; /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;Visual Studio has encountered an exception. This may be caused by an extension. You can get more information by running the application together with the /log parameter on the command line, and then examining the file &apos;C:\Users\USERNAME\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml&apos;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이경우 레지스트리 수정으로 해결이 가능 한데,&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;32Bit의 경우&lt;/div&gt;&lt;div&gt;[HKEY_CLASSES_ROOT\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]&lt;/div&gt;&lt;div&gt;의 Default 값을&amp;nbsp;&lt;/div&gt;&lt;div&gt;&quot;C:\Program Files\Common Files\Microsoft Shared\MSEnv\TextMgrP.dll&quot; 으로&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;64Bit의 경우&lt;/div&gt;&lt;div&gt;[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]&lt;/div&gt;&lt;div&gt;의 Default 값을&amp;nbsp;&lt;/div&gt;&lt;div&gt;&quot;C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\TextMgrP.dll&quot; 으로 수정한다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;만약 기본폴더가 아닌 다른 곳에 설치 했다면 적당히 값 조절해라.&lt;/div&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 09 Nov 2011 21:55:52 +0900</pubDate>
                                </item>
                <item>
            <title>[Boost 살펴보기] 9. noncopyable</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/27066</link>
            <guid isPermaLink="true">http://www.lunapiece.net/27066</guid>
                        <comments>http://www.lunapiece.net/27066#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;C++ 코딩을 하다 보면 복사 되지 말아야 하는 객체가 참 많다...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;특히 포인터를 소유하고 있는 객체들이 그런데, Copy Constructor 를 만들어 주면 간단한 일이지만... &amp;nbsp;일일히 하기도 난감하고 Mutex 객체 등은 Copy Constructor 조차 의미가 없고 레퍼런스 카운팅을 해야 되는 더러운 상황이 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이럴땐 간단히 Copy Constructor 를 private에 선언해서 차단 할 수 있는데... 이걸 일일히 해주자니 또 귀찮은게 인지상정이라...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이런것을 간단히 해결해 주는 class가 있다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;boost::noncopyable 인데&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;boost/utility.hpp 에 존재한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간단히&amp;nbsp;boost::noncopyable 를&amp;nbsp;private 상속(상속시 접근지정자를 쓰지 않으면 private 다!) 해주면 된다.&lt;/p&gt;&lt;p&gt;너무 간단 하므로 샘플따위 없다 (...) 딴데가서 알아봐라&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 14 Sep 2011 21:14:49 +0900</pubDate>
                                </item>
                <item>
            <title>Mysql 툴</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/4933</link>
            <guid isPermaLink="true">http://www.lunapiece.net/4933</guid>
                        <comments>http://www.lunapiece.net/4933#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;HeidiSQL&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strike&gt;MysqlFront &lt;/strike&gt;이제 구버전이다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;공짜고 진리다.&lt;/p&gt;&lt;p&gt;


&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 30 Mar 2011 23:21:46 +0900</pubDate>
                                </item>
                <item>
            <title>[개인자료] 프로그램 만들때 무조건 해야하는것..</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/4636</link>
            <guid isPermaLink="true">http://www.lunapiece.net/4636</guid>
                        <comments>http://www.lunapiece.net/4636#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;1. 자동업데이트(이거 이슈 거의 무조건 생기는거 같다..)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. 서버인증&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. 패킷 암호화&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4. 접속유지체크(이걸 프레임워크단에 넣어야하나 어플단에서 구현해야하나...)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. 일부 알고리즘을 분리해서 인증없이 실행 안되도록.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;6. 크래시 덤프&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Tue, 25 Jan 2011 22:29:15 +0900</pubDate>
                                </item>
                <item>
            <title>사용중인 FireFox 플러그인.</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/4236</link>
            <guid isPermaLink="true">http://www.lunapiece.net/4236</guid>
                        <comments>http://www.lunapiece.net/4236#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;XMarks : 북마크 동기화&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;Fire Gesutrs : 제스쳐&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;FasterFox : 속도 증가(캐시 이용)&lt;br  /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Tue, 18 May 2010 02:12:34 +0900</pubDate>
                                </item>
                <item>
            <title>Google C++ Coding Style - 번역중</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/4217</link>
            <guid isPermaLink="true">http://www.lunapiece.net/4217</guid>
                        <comments>http://www.lunapiece.net/4217#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Non-ASCII_Characters&quot;&gt;http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Non-ASCII_Characters&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;번역중&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;헤더파일&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;- 중복방지를 위한 헤더가드 : 모든 헤더는 중복 include 를 막기 위한 헤더가드를 가진다. 이는&amp;nbsp;&amp;lt;PROJECT&amp;gt;_&amp;lt;PATH&amp;gt;_&amp;lt;FILE&amp;gt;_H_ 의 포맷으로 만들어져있어야 한다&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;- 헤더파일 의존성 : 번역중&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;- 인라인 함수 : 10줄 혹은 그보다 작은 함수에만 사용한다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;- -ini.h 파일 : 복잡한 인라인함수를 만들어야 할 때 ~ini.h 형태를 사용한다&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;- 함수 파라메터 순서 : 함수 파라메터는 입력파라메터가 출력 파라메터보다 먼저 온다&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p&gt;&lt;br  /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Sun, 28 Mar 2010 00:26:41 +0900</pubDate>
                                </item>
                <item>
            <title>Boost 에서 자기 자신의 shared_ptr 리턴하기</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/4187</link>
            <guid isPermaLink="true">http://www.lunapiece.net/4187</guid>
                        <comments>http://www.lunapiece.net/4187#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;span lang=&quot;EN-US&quot;&gt;boost&amp;nbsp;&lt;/span&gt;의&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;shared_ptr&amp;nbsp;&lt;/span&gt;은 편한 놈이지만&lt;span lang=&quot;EN-US&quot;&gt;..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;문제가 생기는 상황이 몇 가지 있다 있다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp;&lt;/span&gt;그 중 하나 바로 객체 내부에서 전역 함수&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;혹은 다른&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;class&amp;nbsp;&lt;/span&gt;의 함수&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;를 호출 할 때&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;this&amp;nbsp;&lt;/span&gt;를 넘기는 문제인데&lt;span lang=&quot;EN-US&quot;&gt;…&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;왜나면 아래와 같은 코드가 안되기 때문이다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;shared_ptr&lt;/span&gt;과 포인터형은 서로 대입이 되지 않기 때문에 위와 같은 코드는 컴파일 에러를 뱉는다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp;&lt;/span&gt;그럼 아래와 같이 고치면 어떨까&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;this&amp;nbsp;&lt;/span&gt;를&amp;nbsp;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;thisptr&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;this&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;로 변환 해서 넘겻다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;이렇게 하면&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;SPtrTest::Operation&lt;/span&gt;이 끝날때와&amp;nbsp;&lt;span lang=&quot;EN-US&quot;&gt;Func&amp;nbsp;&lt;/span&gt;가 끝날 때&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;2&lt;/span&gt;번&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;destructor&amp;nbsp;&lt;/span&gt;가 호출 되게 되어 에러가 난다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;이걸 방지하는 방법은 자기 자신의&amp;nbsp;&lt;span lang=&quot;EN-US&quot;&gt;shared_ptr&amp;nbsp;&lt;/span&gt;을 레퍼런스 카운트 문제가 생기지 않도록&lt;span lang=&quot;EN-US&quot;&gt;(this&amp;nbsp;&lt;/span&gt;를 넘길 때도 레퍼런스 카운터가 증가 하는&lt;span lang=&quot;EN-US&quot;&gt;)&amp;nbsp;&lt;/span&gt;하는 것이다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;즉&amp;nbsp;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: rgb(1, 0, 1); &quot;&gt;boost&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;::&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;enable_shared_from_this&amp;lt;T&amp;gt;&amp;nbsp;&lt;/span&gt;를 상속 받은&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;class&amp;nbsp;&lt;/span&gt;를 만드는 방법이다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: rgb(1, 0, 1); &quot;&gt;boost&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;::&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;enable_shared_from_this&amp;lt;T&amp;gt;&amp;nbsp;&lt;/span&gt;를 상속 받은 뒤&lt;span lang=&quot;EN-US&quot;&gt;&amp;nbsp;shared_from_this()&amp;nbsp;&lt;/span&gt;를 호출 하면 자기 자신의&amp;nbsp;&lt;span lang=&quot;EN-US&quot;&gt;shared_ptr&amp;nbsp;&lt;/span&gt;을 리턴 해 준다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;그럼 아래와 같이 된다&lt;/p&gt;&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; &quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;615&quot; valign=&quot;top&quot; style=&quot;width: 461.2pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; &quot;&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;#include&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&amp;lt;boost/shared_ptr.hpp&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;#include&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&amp;lt;cstdio&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: rgb(163, 21, 21); &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;using&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;namespace&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;boost&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;class&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;void&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;class&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;public&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;Constructor\n&quot;&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;~&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;Destructor\n&quot;&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;operation&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;this&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;void&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;%d\n&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;int&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;_tmain&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;argc&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;_TCHAR&lt;/span&gt;*&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;argv&lt;/span&gt;[])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;&amp;nbsp;= 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;operation&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;return&lt;/span&gt;&amp;nbsp;0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;이렇게 하면 아무 문제 없이 작동이 가능하다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Ps.&amp;nbsp;&lt;/span&gt;특히 조심해야 할 것은&lt;span lang=&quot;EN-US&quot;&gt;..&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;thisptr&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;this&lt;/span&gt;); 를 여러 번 생성 한다고 레퍼런스 카운터가 증가하는 것은 아니다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp;&lt;/span&gt;레퍼런스 카운터의 증가는 변수끼리의 대입에 의해서만 증가할 뿐&lt;span lang=&quot;EN-US&quot;&gt;,&amp;nbsp;&lt;/span&gt;저런 선언은 카운터&lt;span lang=&quot;EN-US&quot;&gt;1&lt;/span&gt;짜리 변수를 여러 개 늘려 에러를 내게 할 뿐이다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; &quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;615&quot; valign=&quot;top&quot; style=&quot;width: 461.2pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; &quot;&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;#include&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&amp;lt;boost/shared_ptr.hpp&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;#include&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&amp;lt;cstdio&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: rgb(163, 21, 21); &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;using&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;namespace&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;boost&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;class&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;void&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;class&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;public&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;Constructor\n&quot;&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;~&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;Destructor\n&quot;&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;operation&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;thisptr&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;this&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;thisptr&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;void&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;%d\n&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;int&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;_tmain&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;argc&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;_TCHAR&lt;/span&gt;*&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;argv&lt;/span&gt;[])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;&amp;nbsp;= 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;operation&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;return&lt;/span&gt;&amp;nbsp;0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;br  /&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; &quot;&gt;&lt;br  /&gt;&lt;/p&gt;&lt;table class=&quot;MsoTableGrid&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; style=&quot;border-collapse: collapse; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; &quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;615&quot; valign=&quot;top&quot; style=&quot;width: 461.2pt; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; &quot;&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;#include&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&amp;lt;boost/shared_ptr.hpp&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;#include&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&amp;lt;boost/weak_ptr.hpp&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;#include&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&amp;lt;boost/smart_ptr/enable_shared_from_this.hpp&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;#include&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&amp;lt;cstdio&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: rgb(163, 21, 21); &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;using&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;namespace&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;boost&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;class&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;void&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;class&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: blue; &quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;boost&lt;/span&gt;::&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;enable_shared_from_this&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;public&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;Constructor\n&quot;&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;~&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;Destructor\n&quot;&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;operation&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_from_this&lt;/span&gt;());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;void&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;Func&lt;/span&gt;(&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;++;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;printf&lt;/span&gt;(&lt;span style=&quot;color: rgb(163, 21, 21); &quot;&gt;&quot;%d\n&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;sp&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; color: blue; &quot;&gt;int&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;_tmain&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;int&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;argc&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;_TCHAR&lt;/span&gt;*&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;argv&lt;/span&gt;[])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;shared_ptr&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;(&lt;span style=&quot;color: blue; &quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;SPtrTest&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;var1&lt;/span&gt;&amp;nbsp;= 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;testclass&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: rgb(1, 0, 1); &quot;&gt;operation&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; &quot;&gt;return&lt;/span&gt;&amp;nbsp;0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; align=&quot;left&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; &quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: 나눔고딕코딩; &quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 01 Mar 2010 15:02:12 +0900</pubDate>
                                </item>
                <item>
            <title>[잡설] 앱스토어의 유행. 프로그래머에겐 과연?</title>
            <dc:creator>Lyn</dc:creator>
            <link>http://www.lunapiece.net/4167</link>
            <guid isPermaLink="true">http://www.lunapiece.net/4167</guid>
                        <comments>http://www.lunapiece.net/4167#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;==여기서부턴 내 개인적인 생각이니... 할말있으면 태클 거는건 좋다.==&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;프로그래머에게 앱스토어의 유행이란 과연 무엇일까..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;혹자는 이렇게 말할지도 모른다. 개인 개발자들에게 대박의 기회를 주었다고...&lt;/p&gt;
&lt;p&gt;물론 난 대박이란 말을 좋아하지 않는다. 왠지 운으로 된 것이라는 느낌을 강하게 주기때문에. 하지만 여기선 딱히 쓸 말이 없는 거 같아 그냥 대박이라 표현하기로 하자. 내 짧은 어휘력에 저주를 한번 보내주는 것은 좋다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 얘기는 물론 대박을 친 사람이 있다는 얘기는 아니다.&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;272&quot;&gt;난 아직까지 앱스토어에서 대박친 사람을 본 적이 없다. 기껏해야 중박정도랄까. 애시당초 큰 돈을 벌 수 있는 시스템이 아니다.&lt;/p&gt;
&lt;p&gt;그리고 앱스토어는 이제 개인 한두명일 달라붙을 수 있는 시장이 아니라 규모를 갖춘 팀이 아니면 승부를 하기 힘든 시장이다.&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;내가 말하고싶은건 뭐냐...&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;프로그래머에게 앱스토어는 저주나 다름없다는 것이다.&amp;nbsp;적어도 한국에서는..&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;공짜 혹은 비싸봐야 천원내지 수천원 이건 무슨 의미냐. 프로그램은 &quot;싸다&quot; 라는 인식을 사람들에게 박아준 것 이외엔 아무것도 아니다.&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;프로그램은 엄청난 인건비를 소모 해야만 만들 수 있다. 그런것이 천원 이천원에 팔린다는것은 가치를 우리 스스로 무시한 것 외에 아무것도 아니다.&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;프로그래머들의 재미있는 장난감이 될 수는 있다 앱스토어가. 하지만 재미삼아 만들었으면 그것으로 끝내라. 그걸 싼값에 공개하는건 우리 스스로 가치를 깎아먹는 것 밖에는 안된다.&amp;nbsp; &lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;중급개발자가 월급이 300만원이라고 하면 시간당 2만원을 버는셈인데... 그것을 1달러(대충 1000원으로 치자) 에 판다고 하자.&lt;/p&gt;
&lt;p jQuery1266551617180=&quot;238&quot;&gt;아이폰 앱스토어에서 100개 이상 팔리는 어플의 비율이 10% 정도라고 하는데... 상위 10%의 어플을 만들어 냇다고 치자. 그럼 10만원을 버는 셈이다. 당신이 그걸 5시간 이내에 완성한 것이 아니라면 완전한 손해라고 밖에 할 수 없다.&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 19 Feb 2010 13:19:51 +0900</pubDate>
                                </item>
            </channel>
</rss>

