<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Template Meta Programming on Cigarettes &amp; Coffee</title><link>https://cignc.dev/tags/template-meta-programming/</link><description>Recent content in Template Meta Programming on Cigarettes &amp; Coffee</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Fri, 26 Jun 2026 01:54:46 +0900</lastBuildDate><atom:link href="https://cignc.dev/tags/template-meta-programming/index.xml" rel="self" type="application/rss+xml"/><item><title>🏃 Modern C++ - 2. Template Meta Programming</title><link>https://cignc.dev/posts/modern-cpp/02-template-meta-programming/</link><pubDate>Fri, 26 Jun 2026 01:54:46 +0900</pubDate><guid>https://cignc.dev/posts/modern-cpp/02-template-meta-programming/</guid><description>&lt;ul&gt;
&lt;li&gt;이전 글: &lt;a href="../01-type-casting/"&gt;🏃 Modern C++ - 1. Type Casting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;컴파일 타임에 생성되는 코드를 이용하여 프로그래밍하는 방법을 &amp;lsquo;메타 프로그래밍&amp;rsquo;이라 하는데, 템플릿이 컴파일 타임에 코드가 만들어지는 점을 이용하여 프로그래밍 하는 방법을 &amp;lsquo;템플릿 메타 프로그래밍(TMP)&amp;lsquo;라 부른다.&lt;/p&gt;
&lt;p&gt;런타임에 계산될 작업을 컴파일 타임에 해결할 수 있어 컴파일 타임은 길어지지만 실행 속도가 매우 좋아진다. 하지만 TMP는 복잡하고 구성하기 어려우며, 디버그가 어려워진다는 단점으로 인해 현업에서 자주 사용되지는 않는다.&lt;/p&gt;
&lt;p&gt;보통 재귀적인 방법으로 구현하며, 컴파일러마다 재귀 가능 횟수가 어느정도 정해져 있어 재귀 횟수가 큰 경우에는 컴파일이 실패할 수도 있다. TMP를 편하게 구성하기 위하여 &lt;code&gt;boost::MPL&lt;/code&gt; 라이브러리를 활용할 수 있다.&lt;/p&gt;</description></item></channel></rss>