如何使用C ++ 11创build计时器事件? 我需要的东西是:“从现在起1秒后给我打电话”。 有没有图书馆?
我正在加快C ++ 0x的速度,并用g ++ 4.6进行testing 我只是尝试下面的代码,认为它会工作,但它不会编译。 我得到的错误: incompatible types in assignment of 'std::initializer_list<const int>' to 'const int [2]' struct Foo { int const data[2]; Foo(std::initializer_list<int const>& ini) : data(ini) {} }; Foo f = {1,3};
std::system_clock和std::steady_clock什么std::steady_clock ? (举例说明不同的结果/行为的例子会很好)。 如果我的目标是精确测量函数的执行时间(比如基准testing), std::system_clock , std::steady_clock和std::high_resolution_clock std::steady_clock之间的最佳select是什么?
虽然我正在阅读boost / shared_ptr.hpp,我看到了这样的代码: // generated copy constructor, destructor are fine… #if defined( BOOST_HAS_RVALUE_REFS ) // … except in C++0x, move disables the implicit copy shared_ptr( shared_ptr const & r ): px( r.px ), pn( r.pn ) // never throws { } #endif 什么评论“生成的副本构造函数,析构函数是好的,除了在C + + 11,移动禁用隐式副本”的意思呢? 我们是否总是自己写复制文件来防止这种情况出现在C ++ 11中?
用户可以添加显式的特化到std命名空间。 但是,我明确禁止从专业化的几个模板。 什么模板可以我不能专精?
当使用std::bind绑定一个成员函数时,第一个参数是这个对象的this指针。 然而,它将作为指针传递给对象,而不是。 请参阅以下程序: #include <iostream> #include <functional> struct foo { void bar(int v) { std::cout << "foo::bar – " << v << '\n'; } }; int main() { foo my_foo; auto f1 = std::bind(&foo::bar, my_foo, 1); auto f2 = std::bind(&foo::bar, &my_foo, 2); f1(); f2(); } 铛和海湾合作委员会编译这没有抱怨,结果适用于两个绑定: foo :: bar – 1 foo :: bar – […]
根据我发现的来源, lambdaexpression式本质上是由编译器创build一个重载的函数调用操作符和引用的variables作为成员的类来实现的。 这表明lambdaexpression式的大小是变化的,并给出足够大的引用variables,这个variables的大小可以是任意大的 。 一个std::function应该有一个固定的大小 ,但它必须能够包装任何种类的可调用,包括任何types的lambda。 它是如何实现的? 如果std::function内部使用一个指向它的目标的指针,那么当std::function实例被复制或移动时会发生什么? 有涉及堆分配吗?
我怎样才能检查一个std::thread是否仍在运行(平台独立的方式)? 它缺lesstimed_join()方法,而timed_join()并不意味着这一点。 我想在线程中使用std::lock_guardlocking一个互斥锁,并使用互斥锁的try_lock()方法来确定它是否仍然被locking(线程正在运行),但对我而言似乎不必要的复杂。 你知道更优雅的方法吗? 更新:要清楚:我想检查线程干净退出或不。 为此,“悬挂”线程被认为正在运行。
如何从STL容器中删除具有指定值或满足某些条件的元素? 对于不同种类的容器,是否有一种统一或统一的方法?
可能重复: 有人可以解释移动语义给我吗? 我最近参加了一个C ++ 11研讨会,并给出了以下的build议。 when you have && and you are unsure, you will almost always use std::move 任何人可以向我解释为什么你应该使用std::move ,而不是一些替代品和一些情况下,当你不应该使用std::move ?