C++三元条件运算符 ?:
一个三元运算符(也称为条件运算符)的使用,它用于根据条件选择两个表达式中的一个。这个三元运算符的格式如下:
condition ? expression_if_true : expression_if_false
以上整个表达式为一个整体:
 如果condition为真(true),则整个表达式结果为expression_if_true的值;如果condition为假(false),则结果为expression_if_false的值。
具体下面一个复杂的代码:
Ratio product = mesh.settings.get<Ratio>("wall_0_material_flow") * 
((layer_nr == 0) ? mesh.settings.get<Ratio>("material_flow_layer_0") : Ratio(1.0))
其中的三元表达式为:
((layer_nr == 0) ? mesh.settings.get<Ratio>("material_flow_layer_0") : Ratio(1.0))
-  mesh.settings.get<Ratio>("wall_0_material_flow"):调用mesh.settings的get方法,获取名为"wall_0_material_flow"的设置项的值,并将其转换为Ratio类型。这可能表示打印第一层外壁时的材料流速。
-  (layer_nr == 0):这是三元运算符的条件部分,检查当前层索引layer_nr是否等于0,即是否是第一层。
-  如果条件为真(即 layer_nr等于0):- mesh.settings.get<Ratio>("material_flow_layer_0"):获取名为- "material_flow_layer_0"的设置项的值,这可能表示第一层的特殊材料流速设置。
 
-  如果条件为假(即 layer_nr不等于0):- Ratio(1.0):创建一个- Ratio类型的实例,其值为1.0,表示其他层使用默认的材料流速。
 
-  最终,这个表达式的结果将是一个 Ratio类型的值,它是"wall_0_material_flow"的值与根据层号决定的特定流速调整因子的乘积。
这个表达式通常用于根据是否是第一层来调整材料流速,以便在打印过程的初始层使用不同的打印设置,这有助于提高打印质量和表面光滑度。