Although in my previous post I argued that coding styles and formatting are only smoke and mirrors, latetly I found myself increasingly entangled in a dilemma concerning just that question. Namely, I suddenly found pleasure in writing my C++ statements using expressions rather than direct flow control constructs.
Want an expample? Here it is:
1 2 3 4 | // housekeeping (type == QAmmMeasModel::MeasChannelNode) ? removeItemRef(m_measDefEntries, m_measDefFilesSz, defFileName, defFileIndex) : removeItemRef(m_rangeDefEntries, m_rangeDefFilesSz, defFileName, defFileIndex); |
1 2 3 4 5 6 7 8 | if (type == QAmmMeasModel::MeasChannelNode) { //........ } else { //........ } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | // houskeeping if (type == QAmmMeasModel::MeasChannelNode) { assert (m_measDefEntries.contains(key)); assert (m_measDefFiles.contains(defFileName)); m_measDefEntries. remove (key); if (m_measDefFiles[defFileName] == 1) m_measDefFiles. remove (defFileName); else m_measDefFiles[defFileName]--; } else { assert (m_rangeDefEntries.contains(key)); assert (m_rangeDefFiles.contains(defFileName)); m_rangeDefEntries. remove (key); if (m_rangeDefFiles[defFileName] == 1) m_rangeDefFiles. remove (defFileName); else m_rangeDefFiles[defFileName]--; } |
1 2 3 4 5 6 7 8 | // lispy? (type == QAmmMeasModel::MeasChannelNode) ? (m_measDefEntries. remove (key), ((m_measDefFiles[defFileName] == 1) ? m_measDefFiles. remove (defFileName) : m_measDefFiles[defFileName]--)) : (m_rangeDefEntries. remove (key), ((m_rangeDefFiles[defFileName] == 1) ? m_rangeDefFiles. remove (defFileName) : m_rangeDefFiles[defFileName]--)); |
Later in the day I chose the simpler solution and just wrote the removeItemRef() function hiding the ugly if() clause, but if I didn't do it, what do you think, which of the two versions should I had included in the code?
No comments:
Post a Comment