模板类静态变量

这篇博客探讨了在Win32环境下,使用MinGW和CentOS下的GNU 4.1.2编译器时遇到的模板类静态变量编译错误,与VC编译器的兼容性差异。通过采用模板特化的方法,成功解决了编译问题,并在MinGW和GNU编译器下运行通过。
摘要由CSDN通过智能技术生成
/* 
 * File:   main.cpp
 * Author: Vicky.H
 *
 */
#include <iostream>

class A {
public:
    static int _var;
};

int A::_var = 1;

template<typename T>
class B {
public:
    static int _var;
};


//int B::_var = 1; ERROR
//int B<>::_var = 1; ERROR

/**该程序,使用VC编译正确,使用MingW与GNU编译都会在27,28,29错误!*/
int B<char>::_var = 1;
int B<int>::_var = 4;
int B<double>::_var = 8;

/*
 * 
 */
int main(void) {
    std::cout << B<char>::_var << std::endl;
    std::cout << B<int>::_var << std::endl;
    std::cout << B<double>::_var << std::endl;

    return 0;
}


该程序,在win32下,mingw与centos下gnu4.1.2编译均错误,使用VC编译通过.

而解决这个问题的办法也很简单,使用"模版特化"

/* 
 * File:   main.cpp
 * Author: Vicky.H
 *
 */
#include <iostream>

class A {
public:
    static i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值