コマンドライン引数からランダムに1つ返すコマンド

30分プログラム、その752。コマンドライン引数からランダムに1つ返すコマンドを作ってみました。
作ってから調べてみたら、昔に同じことやってました。サイコロコマンド - コマンドライン引数からランダムに1つ返すコマンド - みずぴー日記。しかも、アルゴリズムも同じでした。進歩してねー。

使い方

$ g++ choice.cxx -Wall -o choice
$ ./choice alice bob carol dave
alice
$ ./choice alice bob carol dave
dave
$ ./choice alice bob carol dave
carol

ソースコード

#include <iostream>

template<typename T>
T choice(T* xs, int size){
  int i = (int)(rand() % size);
  return xs[i];
}

int main(int argc, char* argv[])
{
  //  list xs = new
  srand((unsigned int)time(0));
  std::cout << choice(argv+1, argc-1) << std::endl;
  return 0;
}