エラトステネスのふるいを書こうとしてます.Python で言うところの

def sieve(xs):
  if (len(xs) == 0): return []
  else: return [xs[0]] + sieve([y for y in xs[1:] if y % xs[0] != 0])
print sieve(range(2,1000))

というコードは,C++ ではどれくらい簡単に書けますか?

# Pythonではリストの加算はリストの隣接を表します.
# xs[1:] はリストの二番目の要素から後の部分リストです.