相关疑难解决方法(0)

如何拥有"constexpr和运行时"别名

Constexpr对编译优化非常有用.例如...

strlen(char*)
Run Code Online (Sandbox Code Playgroud)

可以使用....预编译

constexpr inline size_t strlen_constexpr(char* baseChar) {
    return (
            ( baseChar[0] == 0 )
            ?(// if {
              0
              )// }
            :(// else {
              strlen_constexpr( baseChar+1 ) + 1 
              )// }
            );
}
Run Code Online (Sandbox Code Playgroud)

这在优化时给它的运行时成本为"0"但是在运行时速度超过10 + x

// Test results ran on a 2010 macbook air
--------- strlen ---------
Time took for 100,000 runs:1054us.
Avg Time took for 1 run: 0.01054us.
--------- strlen_constexpr ---------
Time took for 100,000 runs:19098us.
Avg Time took for 1 run: 0.19098us.
Run Code Online (Sandbox Code Playgroud)

是否有任何现有的宏/模板黑客可以使用单个统一功能.即.

constexpr …
Run Code Online (Sandbox Code Playgroud)

c++ optimization compiler-optimization c++11

22
推荐指数
1
解决办法
1346
查看次数

标签 统计

c++ ×1

c++11 ×1

compiler-optimization ×1

optimization ×1