1 #include <bitset> 2 #include <stdio.h> 3 fill(std::bitset<N> & b)4template <std::size_t N> void fill(std::bitset<N> &b) { 5 b.set(); 6 b[0] = b[1] = false; 7 for (std::size_t i = 2; i < N; ++i) { 8 for (std::size_t j = 2 * i; j < N; j += i) 9 b[j] = false; 10 } 11 } 12 13 template <std::size_t N> by_ref_and_ptr(std::bitset<N> & ref,std::bitset<N> * ptr)14void by_ref_and_ptr(std::bitset<N> &ref, std::bitset<N> *ptr) { 15 // Check ref and ptr 16 return; 17 } 18 main()19int main() { 20 std::bitset<0> empty; 21 std::bitset<13> small; 22 fill(small); 23 std::bitset<70> medium; 24 fill(medium); 25 std::bitset<1000> large; 26 fill(large); 27 by_ref_and_ptr(small, &small); // break here 28 by_ref_and_ptr(medium, &medium); 29 by_ref_and_ptr(large, &large); 30 return 0; 31 } 32