首页 > 代码库 > 关于template 的23个问题

关于template 的23个问题

发现新大陆。曾经慢慢才知道的东西。原来有个集中营:

看看updated, 处理方式是这么的好

35.1

" id="link-to-faq-35_1" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">What‘s the idea behind templates?

35.2What‘s the syntax / semantics for a "class template"?
35.3

" id="link-to-faq-35_3" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">What‘s the syntax / semantics for a "function template"?

35.4How do I explicitly select which version of a function template should get called?

35.5What is a "parameterized type"?
35.6

" id="link-to-faq-35_6" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">What is "genericity"?

35.7My template function does something special when the template type T is int or std::string; how do I write my template so it uses the special code when T is one of those specific types?

35.8Huh? Can you provide an example of template specialization that doesn‘t use foo and bar?

35.9

" id="link-to-faq-35_9" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">But most of the code in my template function is the same; is there some way to get the benefits of template specialization without duplicating all that source code?

35.10

" id="link-to-faq-35_10" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">All those templates and template specializations must slow down my program, right?

35.11

" id="link-to-faq-35_11" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">So templates are overloading, right?

35.12

" id="link-to-faq-35_12" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">Why can‘t I separate the definition of my templates class from its declaration and put it inside a .cpp file?

35.13How can I avoid linker errors with my template functions?

 Updated!

35.14

" id="link-to-faq-35_14" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">How does the C++ keyword export help with template linker errors? Updated!

35.15How can I avoid linker errors with my template classes? Updated!
35.16

" id="link-to-faq-35_16" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">Why do I get linker errors when I use template friends?

35.17How can any human hope to understand these overly verbose template-based error messages?
35.18Why am I getting errors when my template-derived-class uses a nested type it inherits from its template-base-class?

35.19Why am I getting errors when my template-derived-class uses a member it inherits from its template-base-class?

35.20Can the previous problem hurt me silently?

Is it possible that the compiler will silently generate the wrong code?

35.21

" id="link-to-faq-35_21" style="color:rgb(59,102,153); background-color:transparent; text-decoration:none">How can I create a container-template that allows my users to supply the type of the underlying container that actually stores the values?

35.22Follow-up to previous: can I pass in the underlying structure and the element-type separately?
35.23Related: all those proxies must negatively reflect on the speed of my program. Don‘t they?



关于template 的23个问题