谷歌搜索没有找到任何东西。它们是在使用点创建的,还是实例之间共享的通用部分?
(模板类相同吗?)
答案 0 :(得分:11)
模板函数在编译时创建。 template属性与线程安全完全正交。
答案 1 :(得分:6)
它们的线程安全性不比任何其他类型的函数更好。
答案 2 :(得分:3)
我认为线程安全受此影响的唯一方法是,如果someMethod<typename T>()
不是线程安全的话,那么一个线程在someMethod<int>()
上运行仍然可以someMethod<std:string>()
,只要缺乏线程安全性并非来自他们两个调用某些非模板化函数。
其他东西保证只有一个线程一次使用特定类型执行特定任务的情况似乎不太可能。
答案 3 :(得分:2)
模板函数只是...编译器用来生成“普通”函数的模板。所以它和普通函数一样,没有区别。