class calculate {
 int _count;
public:
 calculate() : _count(0) {}
 double operator()() {
   return sin(2.0 * M_PI * 1000.0 * (double)(_count++)/8000.0);
 }
};

std::vector<double> tbl(256, 0.0);
std::generate(tbl.begin(), tbl.end(), calculate());