小编The*_*eer的帖子

为什么使用模板生成的函数的符号类型为“弱”?

创建了模板函数C++ template <class T> void myswap(T&d,T&s)。Main将其用于int,double,复杂类型。使用g ++编译源代码。通过nm转储符号表时,为各个类型生成的函数具有符号类型“ W”。

为什么将它们生成为弱符号?


#include <iostream>
#include <complex>

template <class T>
void myswap(T& d, T& s)
{
    T temp = d;
    d=s;
    s=temp;
}

int main(void)
{
    int m=5,n=6;
    std::cout << "m=" << m << " n=" << n <<std::endl;
    myswap(m,n);
    std::cout << "m=" << m << " n=" << n <<std::endl;

    double p=4.3,q=5.6;
    std::cout << "p=" << p << " q=" << q <<std::endl;
    myswap(p,q);
    std::cout << "p=" << p << " …
Run Code Online (Sandbox Code Playgroud)

c++ templates weak-symbol

3
推荐指数
1
解决办法
47
查看次数

标签 统计

c++ ×1

templates ×1

weak-symbol ×1