概述
编译错误:
- 函数定义中,如果使用了一个自定义类型,则这个类型必须要定义(需要引入定义文件,不能用前置声明,否则会报内部错误)
- 无法使用模板参数“Index”,因为它跟随一个模板参数包,无法从“vecToTup2”的函数参数推导出来。这种问题,是说模板参数,必须要能够从
参数
推导出来,这个参数可以是模板参数列表中的参数,也可以是函数的形参。模板参数形参绑定实参,可以通过<>
中提供显示的类型或非类型参数,也可以通过函数的形参传递。
连接错误:
静态变量、函数定义需要放到源文件,哪怕只有一个定义,否则会引起重定义问题。
- 重定义的变量问题,变量定义需要放到 cpp 文件,防止在反复包含头文件时候,引起重定义。
- 重定义的函数问题,函数定义也要放到 cpp 文件,防止在反复包含头文件时候,引起重定义
- 模板函数定义,需要跟头文件放一起(必须放一起)否则会导致连接时候找不到定义问题。
- 模板类中的非模版函数,定义仍需放在 cpp 文件中,防止模板实例化时候反复包含头文件,引起非模板函数的重定义问题。
留言