我有以下c ++代码:
android:layout_alignParentBottom="true"
当我使用带有选项-O3的g ++ 8.2进行编译时,它会生成well-optimized asm code。但是,当我将第二行从inline int choose(int i){
static constexpr int arr[]={1,3,3,2,4,1,4};
return arr[i];
}
void f(int);
int main(){
for(int i=0;i<5;i++){
f(choose(i));
}
}
更改为static constexpr
时(在语义上应该相同),它不再优化数组访问并生成somewhat inefficient asm code。
有人知道为什么会这样吗?