Áú¹®°ú ´äº¯

C++ ÅÛÇø´ ¿¹Á¦ Áú¹®ÀÔ´Ï´Ù ³¯Â¥:2024-2-15 9:43:18 Á¶È¸¼ö:797
ÀÛ¼ºÀÚ : L0st_P4inting
Æ÷ÀÎÆ® : 7
°¡ÀÔÀÏ : 2020-08-08 22:59:31
¹æ¹®È½¼ö : 13
±Û 1°³, ´ñ±Û 1°³
¼Ò°³ :
ÀÛ¼º±Û º¸±â
ÂÊÁö º¸³»±â
8-1-5. µ¿ÀÏÇÑ ¾Ë°í¸®Áò Á¶°ÇÀÇ SwapArrayÀÇ ¿¹½Ã¿Í
8-3-2. Ư¼öÈ­ÀÇ Specialization ¿¹½Ã¿¡¼­
template <class T> ¶ó°í ÇØµÎ¼Å¼­
ã¾Æº¸±â·Ð ¿ø·¡ ½ºÆ®·Ó½ºÆ®·ì¾¾°¡ <class T> ¸¦ ¹Ð°í ÀÖ¾ú´Âµ¥
È¥µ¿ÀÌ ¿Â´Ù°í typenameÀ¸·Î °íÃÆ´Ù°í Çϴµ¥
²À class T·Î ½á¾ßÇÏ´Â ¿¹¿Ü°¡ ÀÖ´Ù°í µé¾ú½À´Ï´Ù.

<typename T>¿Í <class T>ÀÇ Â÷ÀÌÁ¡ÀÌ ¹«¾ùÀΰ¡¿ä?
±×¸®°í ¿¹½Ã¿¡¼± ¿Ö class T·Î ÀÛ¼ºÇϼ̴ÂÁöµµ ±Ã±ÝÇÕ´Ï´Ù. À§ÀÇ ¿¹¿Ü »çÇ× ¶§¹®Àΰ¡¿ä? 403 Forbidden403 Forbidden

¸ñ·Ïº¸±â »èÁ¦ ¼öÁ¤ ½Å°í ½ºÅ©·¦

tempname 5¿ù13ÀÏ 4:06:20  

¸ð´ø C++ ±âÁØÀ¸·Î´Â ¾ÆÁÖ »ç¼ÒÇÑ Â÷ÀÌ ¿Ü¿¡´Â Â÷À̰¡ ¾ø½À´Ï´Ù.
https://stackoverflow.com/questions/2023977/what-is-the-difference-between-typename-and-class-template-parametersÀÇ ³»¿ëÀ» ÀοëÇÏ¿´½À´Ï´Ù.

1. ÅÛÇø´ ÅÛÇø´ ÆÄ¶ó¹ÌÅ͸¦ Àü´ÞÇÒ ¶§ (until C++ 17, ´Ù¸¸ g++ 10.5 ¹öÀü ±âÁØÀ¸·Î std=c++98 ¿É¼ÇÀ» ºÎ¿©Çصµ ÄÄÆÄÀÏ °¡´É)
¿¹½Ã ÄÚµå
template <template <typename, typename> class C, typename T> // C ¾ÕÀÇ class´Â typenameÀ¸·Î ġȯ ºÒ°¡
struct Container {
C<T, std::allocator<T>> container_;
};

int main()
{
Container<std::vector, int> c {};
}

2. class ÅÛÇø´À» ¸í½ÃÀûÀ¸·Î ÀνºÅϽºÈ­ ÇÒ ¶§
template class Foo<int>;

Âü°í·Î, ¿¹½Ã·Î µå½Å template <typename T>¿Í template <class T>´Â ½ÇÁ¦·Î ¾Æ¹«·± Â÷À̰¡ ¾ø½À´Ï´Ù.

L0st_P4inting 5¿ù19ÀÏ 12:10:51  

°¨»çÇÕ´Ï´Ù. Áú¹®ÇÑÁö ²Ï µÇ¼­ ´ä±ÛÀÌ ´Þ¸°ÁÙ ¸ð¸£°í À־ °¨»çÀλ簡 ´Ê¾ú½À´Ï´Ù. Á» ´õ ã¾Æº¸´Ï Áߺ¹ÇÒ¶§µµ Â÷À̰¡ ÀÖ´Ù°í Çϳ׿ä.


·Î±×ÀÎÇÏ¼Å¾ß ´ñ±ÛÀ» ´Þ ¼ö ÀÖ½À´Ï´Ù.