本文整理汇总了C++中boost::cref方法的典型用法代码示例。如果您正苦于以下问题:C++ boost::cref方法的具体用法?C++ boost::cref怎么用?C++ boost::cref使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boost
的用法示例。
在下文中一共展示了boost::cref方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: frameworkMessage
void frameworkMessage(const SlaveID& slaveId,
const FrameworkID& frameworkId,
const ExecutorID& executorId,
const string& data)
{
VLOG(1) << "Received framework message";
invoke(bind(&Scheduler::frameworkMessage, sched, driver, cref(slaveId),
cref(executorId), cref(data)));
}
示例2: return
real Closure::P2_22(real k) const {
#if 0
real a[2] = { QMIN, -1 };
real b[2] = { kcut, +1 };
return (k == 0) ? 0 : 2*Integrate<2>(bind(&Closure::f2_22, cref(*this), k, _1, _2), a, b, 1e-4, 1e-4*P_L(k));
#endif
real a[2] = { k/M_SQRT2, 0 };
real b[2] = { kcut, k/M_SQRT2 };
return (k == 0) ? 0 : 2*Integrate<2>(bind(&Closure::F2_22, cref(*this), k, _1, _2), a, b, 1e-3, 1e-3*P_L(k)/2);
}
示例3: statusUpdate
void statusUpdate(const StatusUpdate& update, const UPID& pid)
{
const TaskStatus& status = update.status();
VLOG(1) << "Status update: task " << status.task_id()
<< " of framework " << update.framework_id()
<< " is now in state " << status.state();
CHECK(frameworkId == update.framework_id());
// TODO(benh): Note that this maybe a duplicate status update!
// Once we get support to try and have a more consistent view
// of what's running in the cluster, we'll just let this one
// slide. The alternative is possibly dealing with a scheduler
// failover and not correctly giving the scheduler it's status
// update, which seems worse than giving a status update
// multiple times (of course, if a scheduler re-uses a TaskID,
// that could be bad.
invoke(bind(&Scheduler::statusUpdate, sched, driver, cref(status)));
if (pid) {
// Acknowledge the message (we do this last, after we invoked
// the scheduler, if we did at all, in case it causes a crash,
// since this way the message might get resent/routed after the
// scheduler comes back online).
StatusUpdateAcknowledgementMessage message;
message.mutable_framework_id()->MergeFrom(frameworkId);
message.mutable_slave_id()->MergeFrom(update.slave_id());
message.mutable_task_id()->MergeFrom(status.task_id());
message.set_uuid(update.uuid());
send(pid, message);
}
}
示例4: main
int main()
{
fusion::vector<int,char> lv_vec(1,'\004');
test_func<> f;
test_func<noncopyable> f_nc;
fusion::result_of::make_fused_procedure< test_func<> >::type fused_func
= fusion::make_fused_procedure(f);
CHECK_EFFECT(fused_func(lv_vec), 1);
CHECK_EFFECT(const_(fused_func)(lv_vec), 0);
CHECK_EFFECT(fusion::make_fused_procedure(const_(f))(lv_vec), 1);
CHECK_EFFECT(fusion::make_fused_procedure(ref(f_nc))(lv_vec), 1);
CHECK_EFFECT(fusion::make_fused_procedure(cref(f_nc))(lv_vec), 0);
CHECK_EFFECT(fused_func(fusion::make_vector(2,'\003')), 1);
CHECK_EFFECT(const_(fused_func)(fusion::make_vector(2,'\003')), 0);
CHECK_EFFECT(fusion::make_fused_procedure(const_(f))(fusion::make_vector(2,'\003')), 1);
CHECK_EFFECT(fusion::make_fused_procedure(ref(f_nc))(fusion::make_vector(2,'\003')), 1);
CHECK_EFFECT(fusion::make_fused_procedure(cref(f_nc))(fusion::make_vector(2,'\003')), 0);
return boost::report_errors();
}
示例5: resourceOffer
void resourceOffer(const OfferID& offerId,
const vector<SlaveOffer>& offers,
const vector<string>& pids)
{
VLOG(1) << "Received offer " << offerId;
// Save the pid associated with each slave (one per SlaveOffer) so
// later we can send framework messages directly.
CHECK(offers.size() == pids.size());
for (int i = 0; i < offers.size(); i++) {
UPID pid(pids[i]);
if (pid != UPID()) {
VLOG(2) << "Saving PID '" << pids[i] << "'";
savedOffers[offerId][offers[i].slave_id()] = pid;
} else {
// Parsing of a PID may fail due to DNS!
VLOG(2) << "Failed to parse PID '" << pids[i] << "'";
}
}
invoke(bind(&Scheduler::resourceOffer, sched, driver, cref(offerId),
cref(offers)));
}
示例6: error
void error(int32_t code, const string& message)
{
VLOG(1) << "Got error '" << message << "' (code: " << code << ")";
invoke(bind(&Scheduler::error, sched, driver, code, cref(message)));
}
示例7: lostSlave
void lostSlave(const SlaveID& slaveId)
{
VLOG(1) << "Lost slave " << slaveId;
savedSlavePids.erase(slaveId);
invoke(bind(&Scheduler::slaveLost, sched, driver, cref(slaveId)));
}
示例8: rescindOffer
void rescindOffer(const OfferID& offerId)
{
VLOG(1) << "Rescinded offer " << offerId;
savedOffers.erase(offerId);
invoke(bind(&Scheduler::offerRescinded, sched, driver, cref(offerId)));
}
示例9: registered
void registered(const FrameworkID& frameworkId)
{
VLOG(1) << "Framework registered with " << frameworkId;
this->frameworkId = frameworkId;
invoke(bind(&Scheduler::registered, sched, driver, cref(frameworkId)));
}
示例10: add_thread
void add_thread(const T &t) {
using boost::cref;
threads_.add_thread(new boost::thread(thread(cref(t), cref(*this))));
}
示例11: G_i
real Closure::G_i(real k) const {
return -k*k/(4*M_PI*M_PI) * 1/36. * Integrate<ExpSub>(bind(B_i, cref(P_i), k, _1), QMIN, QMAX, EPS);
}
示例12: G_h
real Closure::G_h(real k) const {
return k*k/(4*M_PI*M_PI) * 1/12. * Integrate<ExpSub>(bind(B_h, cref(P_i), k, _1), QMIN, QMAX, EPS);
}