在此代码段中使用C++ 11 std :: async:
int foo()
{
::sleep(2);
return 123;
}
int main()
{
future<int> r1(async(foo));
int r2 = foo();
cout << r1.get() + r2 << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它产生了正确的结果,但是连续运行两个foo(整个应用程序运行4秒).编译为:
g++ -std=gnu++11 -O2 foo.cc -lpthread(Ubuntu 12.10 64bit,gcc 4.7.2)
在C++ 11中,当我使用T *array = new T[n];它已经归零时使用动态数组(使用gcc 4.7.2,Ubuntu 12.10 64bit).
编辑:我已经检查过了T = int.
gcc cxx-flags:-std=gnu++11 -O3 -ffast-math -fno-rtti
在MS SQL Server 2008中,是否可以UNIQUE CONSTRAINT在列BUT上定义哪个被检查IF,而仅在IF上检查NON-NULL值.也就是说,应该忽略许多NULL.但是,对于非null,它应该是唯一的.
我们有一个Linux的C应用程序,包含很少的模块.每个模块都可以有一些全局配置变量(一些整数,字符串等).该应用程序旨在作为守护程序运行很长一段时间.
在运行时重新配置应用程序的最佳方法是什么?理想情况下,我们希望以某种方式更改这些配置变量的内容.通过/proc,inotify?什么是最酷,最先进的方式?
如何处理(以只读方式)在一个大的二进制文件C/C++上Linux尽可能快?通过read或mmap?什么缓冲区大小?(没有提升或任何东西.)
假设我想在文件中写入1 GB的数据,比如说ext3使用write(2)系统调用的Linux文件系统,这种情况发生在一个非常繁忙的环境中(许多类似的I/O很简洁).什么是在区间的最佳缓冲区大小,说,[4 kB, 4 MB]这样做,当
O_DIRECT开放标志,或O_DIRECT?请不要"自己检查"答案 - 我想从"文件系统"人那里得到答案.
将4 ints进__m1288进8位__m256(对齐/未对齐)的gcc是什么?怎么样unsigned ints?
如何std::vector实现,使用什么数据结构?当我写作
void f(int n) {
std::vector<int> v(n);
...
}
Run Code Online (Sandbox Code Playgroud)
v堆栈上是否分配了向量?
菜鸟问题,为什么在Haskell中这不正确?
class BasicEq a where
isEqual :: a -> a -> Bool
isNotEqual :: a -> a -> Bool
isNotEqual = not . isEqual
Run Code Online (Sandbox Code Playgroud)