#include <bitset>
#include <stdio.h>

template<std::size_t N>
void fill(std::bitset<N> &b) {
  b.set();
  b[0] = b[1] = false;
  for (std::size_t i = 2; i < N; ++i) {
    for (std::size_t j = 2*i; j < N; j+=i)
      b[j] = false;
  }
}

template<std::size_t N>
void by_ref_and_ptr(std::bitset<N> &ref, std::bitset<N> *ptr) {
    // Check ref and ptr
    return;
}

int main() {
  std::bitset<0> empty;
  std::bitset<13> small;
  fill(small);
  std::bitset<200> large;
  fill(large);
  by_ref_and_ptr(small, &small); // break here
  by_ref_and_ptr(large, &large);
  return 0;
}
