O que é uma maneira eficaz de analisar parâmetros de linha de comando em C ++?

Existe uma maneira realmente eficaz de lidar com parâmetros de linha de comando em C ++?

O que estou fazendo abaixo parece completamente amador, e não consigo imaginar como é realmente tratado os parâmetros da linha de comando (atoi, verificações de argc codificadas) em software profissional.

// Command line usage: sum num1 num2

int main(int argc, char *argv[])
{
   if (argc < 3)
   {
      cout << "Usage: " << argv[0] << " num1 num2\n";
      exit(1);
   }
   int a = atoi(argv[1]);    int b = atoi(argv[2]);    int sum = a + b;
   cout << "Sum: " << sum << "\n";
   return 0; }

questionAnswers(6)

yourAnswerToTheQuestion