1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
/// @example cancel_callback.cpp
/// Cancel callback of primes by throwing a
/// primesieve::cancel_callback() exception. Note that multi-threaded
/// callback can currently not be cancelled this way.
#include <primesieve.hpp>
#include <stdint.h>
#include <iostream>
int i = 0;
void callback(uint64_t prime)
{
if (++i == 1000000)
{
std::cout << "10^6th prime = " << prime << std::endl;
throw primesieve::cancel_callback();
}
}
int main()
{
try
{
primesieve::callback_primes(0, 1000000000, callback);
}
catch (primesieve::cancel_callback&) { }
return 0;
}
|