栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C++ 去掉const

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 去掉const

#include 
#include 



template
class TypeTraits{
private:
    template class UnConst{
        public:
            typedef U Result;
    };

    template class UnConst{
        public:
            typedef U Result;
    };

public:
    typedef typename UnConst::Result NonConstType;
};


template
using NonConstType =  typename TypeTraits::NonConstType;

template
void Func(NonConstType t) {
    std::string* nonP = &t; // ok
    std::string& nonR = t; // ok

    std::cout<<*nonP<
void ForwardFunc(NonConstType t) {
    Func(t);
}


void Test(){
    const int a = 10;
    TypeTraits::NonConstType noConstVar;

    // int& nonConstRef = a; // error not bind const int to int&
    // int* nonConstP = &a; // error, invaild conversion from const int* to int
    
    int *p = &noConstVar; // ok

    const std::string str("hello");
    ForwardFunc(str);
}


int main(){
    Test();
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号