美文网首页bentley开发C++ 2a
mdl中使用C++11的自定义字面量的新功能

mdl中使用C++11的自定义字面量的新功能

作者: 左图右码 | 来源:发表于2022-05-17 12:29 被阅读0次

    mdl中写测试代码经常要进行主单位和Uor的转换,虽然借助宏能做到简洁,但不像在MVBA那样完全隔绝了UOR的转换,全在主单位层面操作,但C++11的新功能却能做到同样的简洁,在写测试代码的时候尤其省事:

    inline long double operator "" _toUor(long double masterUnit)
    {
        return mdlCnv_masterUnitsToUors(masterUnit);
    }
    
    inline long double operator "" _toMaster(long double uorUnit)
    {
        return mdlCnv_uorsToMasterUnits(uorUnit);
    }
    
    inline long double operator "" _toUor(unsigned long long masterUnit)
    {
        return mdlCnv_masterUnitsToUors(masterUnit);
    }
    
    inline long double operator "" _toMaster(unsigned long long uorUnit)
    {
        return mdlCnv_uorsToMasterUnits(uorUnit);
    }
    
    void createLine()
    {
        MSElement li{};
        auto x = 1000_toUor;
        DPoint3d pts[] = { {},{x,500.1234_toUor,0} };
        mdlLine_create(&li, nullptr, pts);
        mdlElement_add(&li);
    }
    

    这个用法在C++14上略有改进,代码不麻烦,不解释,请享用!

    相关文章

      网友评论

        本文标题:mdl中使用C++11的自定义字面量的新功能

        本文链接:https://www.haomeiwen.com/subject/tmfnurtx.html