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>´Â ½ÇÁ¦·Î ¾Æ¹«·± Â÷À̰¡ ¾ø½À´Ï´Ù. |