Как эффективно подсчитать количество определенных указателей?

У меня есть следующий код C ++:

Some_class * temp1 = findTemp1(...); // returns NULL or a valid pointer
Some_class * temp2 = findTemp2(...); // returns NULL or a valid pointer
Some_class * temp3 = findTemp3(...); // returns NULL or a valid pointer

Теперь я хотел бы посчитать, сколько из них вернуло действительный указатель (0, 1, 2 или 3).

Единственный способ, которым я могу думать, это просто тестировать их один на один:

int count = 0;
if (temp1)
   count++;
if (temp2)
   count++;
if (temp3)
   count++;

для 3 указателей, это не так уж плохо, но он плохо масштабируется. Есть ли более эффективный способ, предполагающий, что я не переопределил findtempn funcitons (возможно, пройти в счетчик)?


Большое спасибо для ваших быстрых ответов! Нет, я не собираюсь изменить код, мне просто интересно, что были мои другие варианты. Я также понял, что нельзя просить о чем-то «масштабируемом», если я использую четкие литералы, такие чтобы определить 3 указателя. Конечно, я не думал о том, что вы ответили :)

7
задан Bill the Lizard 12 September 2011 в 13:19
поделиться