sure how to refactor it to make it more readable and/or concise
if (((curveType == CurveType::ENVELOPE || curveType == CurveType::LFO) && points.size() >= 1) || (curveType == CurveType::GRAPH && points.size() >= 2)) {
is there a way to do the same boolean operations but a bit nicer to read?
use switch case
no, i only have 2 cases - either the configuration i have is valid or it isn't and that code validates it
bool isEnvelope = (curveType == Envelope) bool isLFO = (curveType == LFO) bool has1Point = (points.size >=1) bool isGraph = (curveType == Graph) bool has2Points = (points.size >= 2) IF ( (isEnvelope || LFO) && has1Point) || (isGraph && has2Points) ) { //... }
not sure if it's "the c++ way",, from one perspective it's readability but from the other it's redundant code, i most likely won't use those statements again
Depends on what you want to do, and how much of it. This could be more concise, especially if you have more options in the enum: bool hasEnoughPoints(CurveType ct, int pNum) { switch (ct) { case CurveType::ENVELOPE: case CurveType::LFO: return pNum >= 2; case CurveType::GRAPH: return pNum >= 1; default: return false; } }
thank you! i currently don't have more options in the enum, and it's highly likely i won't have any more, but i'll take your suggestion into consideration
Обсуждают сегодня