有没有办法在C ++编译时识别变量是全局变量还是本地变量

时间:2014-11-25 09:49:47

标签: templates metaprogramming

我知道这在现实世界中并不实用。我只是好奇是否有任何技术(如元编程或模板?)可以实现这一点。基本上,我想要的就像这样

int a;
int main(){
    std::cout<<is_global<int, &a>::value;  //<---this is doable, and it's true
    int b;
    std::cout<<is_global<int, &b>::value;  //<--- **how to do this to get a false value?**
    return 0;
}

这里的关键是在编译时获取值,而模板参数必须是编译时常量,它不能是局部变量的地址。 任何关于它的想法都赞赏。

THX

0 个答案:

没有答案