<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Be lost in thought... &#187; c++</title>
	<atom:link href="http://nineye.net/blog/archives/tag/c/feed" rel="self" type="application/rss+xml" />
	<link>http://nineye.net/blog</link>
	<description>Nineye's personal weblog!!!</description>
	<lastBuildDate>Mon, 30 Aug 2010 08:40:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>typename keyword와 template qualifier</title>
		<link>http://nineye.net/blog/archives/1476</link>
		<comments>http://nineye.net/blog/archives/1476#comments</comments>
		<pubDate>Tue, 29 Jun 2010 02:42:39 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[template metaprogramming]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[generic programming]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[qualifier]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[typename]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=1476</guid>
		<description><![CDATA[nested template class의 inner class를 다루다보면 이상한 컴파일 오류에 직면하게 된다.
여기서 이상하다는 것은 몇번을 봐도 틀린 곳이 없는데 컴파일러가 오류를 리턴하는 경우다.
그것도 이상한 오류메세지로&#8230;
사실 이건 그다지 크지 않은 내용이라 해결할때마다 원인과 해결책에 대해 글을 쓰지 않았는데, 이렇게 글을 쓰는 이유는, 오류메세지가 실제 오류와는 무관한 내용이라, 이 문제에 부딪힐때마다 무슨 오류였는지 기억이 나지 않아서 반복적인 삽질을 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/1476/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>class template specialization(클래스 템플릿 특화)</title>
		<link>http://nineye.net/blog/archives/969</link>
		<comments>http://nineye.net/blog/archives/969#comments</comments>
		<pubDate>Fri, 19 Jun 2009 11:13:36 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[template metaprogramming]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[class template specialization]]></category>
		<category><![CDATA[generic programming]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[template specialization]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=969</guid>
		<description><![CDATA[template metaprogramming의 policy-based(한글판 Modern Design C++에서는 단위전략기반이라 해석) 기법을 이용해서 설계를 하다보면, template 인자에 내포된 policy에 따라 해당 policy를 사용하는 class의 내부적인 동작이 달라지는 class를 만들게 된다. 이 때, 각 policy에 따라 해당 class의 구현 코드가 달라질 수도 있으며, 이러한 경우, 그 class에 대한 template specialization을 통해 이를 다른 방식으로 분리할 수 있다.
이 글에서는 template [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/969/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>gcc, vc2005에서의 Apply</title>
		<link>http://nineye.net/blog/archives/721</link>
		<comments>http://nineye.net/blog/archives/721#comments</comments>
		<pubDate>Mon, 11 May 2009 12:54:38 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[template metaprogramming]]></category>
		<category><![CDATA[apply]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[loki]]></category>
		<category><![CDATA[nested template]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=721</guid>
		<description><![CDATA[이 글에서는, 이전에 vc6.0에서 nested template이 컴파일 되지 않는 문제의 해결책 (http://nineye.net/blog/archives/536)에 대한 글의 내용 중, 인터페이스의 문제에 대한 내용을 쓰고자 한다. nested template을 지원하기 위한 Apply에 대한 내용은 링크된 글을 참고해 주기 바란다.
위의 글을 쓴 이후부터, nested template이 필요한 곳에는 대부분 Loki library의 Apply를 이용하게 되었는데, 역시 문제는 인터페이스의 통일이었다. vc6.0에서만 Apply가 필요하고, 그 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/721/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>선택적인 동기화 정책의 사용</title>
		<link>http://nineye.net/blog/archives/711</link>
		<comments>http://nineye.net/blog/archives/711#comments</comments>
		<pubDate>Wed, 06 May 2009 14:56:23 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[template metaprogramming]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[local static]]></category>
		<category><![CDATA[mutex]]></category>
		<category><![CDATA[static]]></category>
		<category><![CDATA[synchronization]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[thread policy]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=711</guid>
		<description><![CDATA[이전, mutex 동기화(http://nineye.net/blog/archives/685)에 대한 글을 적으면서 object lock에 대해 글을 적겠다고 하여서, 이 글에서 그에 대한 글을 적고자 한다. 그리고 동기화에 대한 문제점은 안정적인 동기화와 관련된 필자의 글(http://nineye.net/blog/archives/578)에 이미 설명하였고, 여기서는 거기에서 설명하지 않은 여러 가지 lock정책에 대해서 설명하도록 하겠다. 이 글에 대한 내용은 loki library에 적용된 개념이며, 소스는 loki library를 필자의 생각에 맞게 수정한 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/711/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dialog에 CHtmlView window를 붙이기</title>
		<link>http://nineye.net/blog/archives/672</link>
		<comments>http://nineye.net/blog/archives/672#comments</comments>
		<pubDate>Wed, 01 Apr 2009 11:24:15 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[c++]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=672</guid>
		<description><![CDATA[우선 글쓰기에 앞서 필자는 mfc를 상당히 싫어한다는 것을 밝힌다. 혹자는 &#8220;너가 뭐그리 잘났는데 잘 만들어진 라이브러리를 욕하느냐?&#8221;라고 할 수도 있는데, 이것은 개인 취향의 문제이기 때문에 너무 나무라지는 말았으면 한다. 뭐, mfc도 상속 기반이 아닌, template기반으로 만들어지고, library사용 규칙이 너무 제한되어 있지 않고 자유도가 많이 부가 되었다면 좋아했을 지도 모른다.
어쨌든 mfc를 싫어하면서도 mfc 기반으로 개발하게 된 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/672/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>compiler가 자동으로 맞춰주는 padding</title>
		<link>http://nineye.net/blog/archives/594</link>
		<comments>http://nineye.net/blog/archives/594#comments</comments>
		<pubDate>Tue, 03 Mar 2009 12:44:21 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[Nineye's 미해결 과제]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=594</guid>
		<description><![CDATA[현재 대부분의 컴퓨터에서 32bit CPU를 사용하고 있다. 물론 요즘 64bit CPU를 사용하는 컴퓨터가 증가 추세이지만 32bit system과의 호환성 때문에 내부적으로는 32bit system과 비슷하게 동작하고 있다.
어쨌든, 이러한 32bit system에서는 cpu가 한번에 처리할 수 있는 데이터 량은 32bit(4byte)이기 때문에 컴파일러는 cpu가 4byte 단위로 처리할 수 있게 모든 structure의 크기를 4byte 단위로 맞춰준다.
따라서 4byte단위로 맞춰주지 않은 structure에 대해서는 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/594/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>parent thread의 destroy</title>
		<link>http://nineye.net/blog/archives/583</link>
		<comments>http://nineye.net/blog/archives/583#comments</comments>
		<pubDate>Tue, 03 Mar 2009 05:37:55 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[Nineye's 미해결 과제]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[thread]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=583</guid>
		<description><![CDATA[대화형 서버 구조를 만들려고 하다보니, 클라이언트의 요청을 처리하는 thread와 클라이언트와 packet을 주고 받는 thread를 달리 하려고 했다.
이 때, packet을 주고 받는 thread가 요청을 처리하는 thread를 생성하는 부모 thread가 되도록 했다.
결국, packet을 주고 받는 thread는 main thread의 자식 thread이고, 요청을 처리하는 thread는 packet을 주고 받는 thread의 자식 thread이다.
여기서 클라이언트가 접속을 끊으면 요청을 처리하는 thread에서 클라이언트 소켓을 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/583/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>어떻게 하면 안정적인 thread 코드를 작성할 수 있을까?</title>
		<link>http://nineye.net/blog/archives/578</link>
		<comments>http://nineye.net/blog/archives/578#comments</comments>
		<pubDate>Sun, 01 Mar 2009 18:41:14 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[software design]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[thread]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=578</guid>
		<description><![CDATA[최근에 thread를 많이 사용하는 코드를 작성하면서 좀 더 thread-safe한 것을 보장할 수 있는 설계가 없을까 생각하면서, 어떻게 하면 안정적인 thread 프로그래밍을 할 수 있을까 공유하고픈 마음에 글을 적게 되었다.
일반적으로 구현되는 lock정책을 보면, 대부분 적용하고 있는 정책은 “thread-safe이 보장되어야 하는 object가 아니라, 그 object를 사용하는 곳에서 thread-safe을 보장해야 한다.” 이다. 하지만 이 정책을 “thread-safe이 보장되어야 하는 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/578/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>template argument에 따른 함수 선택 문제</title>
		<link>http://nineye.net/blog/archives/564</link>
		<comments>http://nineye.net/blog/archives/564#comments</comments>
		<pubDate>Sat, 28 Feb 2009 12:12:11 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[Nineye's 미해결 과제]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[generic programming]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=564</guid>
		<description><![CDATA[캐쉬 클래스를 만드는데, 기본적인 지도를 캐쉬하는 mrcache와 동적으로 생성되는 데이터를 캐쉬하는 rrcache 두 가지 종류의 캐쉬가 있다.
여기서 하고자 하는 것은 첫 번째 read 함수를 호출하는 record의 타입에 따라,
이 record의 타입이 어떤 캐쉬에 속해 있는지 판단하여, 아래 두 read 함수를 결정하게 하는 것이다.
기본적인 구조는,
class mrCacheHdr : 지도를 캐쉬하는 class
mrCacheHdr::__DataList : mrCacheHdr내에 포함되는 record들의 Loki::TypeList
아래 코드에 대해 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/564/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>컴파일 타임의 동일 타입 체크</title>
		<link>http://nineye.net/blog/archives/546</link>
		<comments>http://nineye.net/blog/archives/546#comments</comments>
		<pubDate>Wed, 25 Feb 2009 06:39:27 +0000</pubDate>
		<dc:creator>Nineye</dc:creator>
				<category><![CDATA[template metaprogramming]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://nineye.net/blog/?p=546</guid>
		<description><![CDATA[ 
 
template을 많이 사용하다 보면 template parameter의 타입의 체크가 필요할 때도 있다. 예를 들면, template parameter가 int 타입으로 들어오면 100을 더해주고, 그 외의 타입으로 들어오면 100을 빼주는 template function이 있을 때, template parameter가 int타입인지 체크해야 할 필요가 있다. 물론 template specialization으로 처리할 수도 있긴 하지만, 만약 함수가 100line이라면 한 줄의 차이로 인해 동일한 99line을 가진 함수를 [...]]]></description>
		<wfw:commentRss>http://nineye.net/blog/archives/546/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
