Tôi chỉ đọc bài viết về số CRTP trên wiki và tôi hơi bối rối về việc tạo mẫu.instantiation mẫu lớp
Theo wiki,
cơ quan chức năng thành viên (định nghĩa) không được khởi tạo cho đến khi dài sau khi kê khai.
Tôi không hiểu ý nghĩa của nó.
Giả sử tôi có một lớp mẫu:
template <typename T>
class A
{
public:
void foo(T t)
{
//...
};
};
Khi tôi nhanh chóng lớp mẫu A, nó nhanh chóng các hàm thành viên foo()?
Ví dụ:
//in .cpp file
int main()
{
A<int> a; //question 1
//class template is instantiated here, isn't it?
//What about foo(), is it instantiated too?
a.foo(10); //question 2
//according to the quotation, foo() will not be instantiated until it is used.
//if so, foo() is instantiated right here, not in question 1, right?
}
Cắm: Điều này có thể trả lời các câu hỏi của bạn: http: // stackoverflow.com/questions/7182359/template-instantiation-details-of-gcc-và-ms-compilers/7241548 # 7241548 –