小编kip*_*622的帖子

std :: bitset和SSE指令

是否可以在std :: bitset的基础数据上使用SSE指令?我正在使用的位集大于无符号长整数,因此to_ulong()方法是不够的.例如,我可以使用这样的指令:

__m128i* ptr= (__m128i*)(&my_bitset[0]);
Run Code Online (Sandbox Code Playgroud)

然后按正常情况执行SSE操作?

对于使用带有SSE的std :: bitset的人来说,我试图搜索互联网,但它似乎并不是一个常见的用例.

c++ sse bitset

5
推荐指数
2
解决办法
525
查看次数

使用cmake进行make install的问题

当我使用make install或时,我反复收到此错误sudo make install:

file Internal CMake error when trying to open file:
  project_dir/install_manifest.txt for writing.
Run Code Online (Sandbox Code Playgroud)

如果我查看cmake_install.cmake文件,有问题的行总是在这里:

file(WRITE "project_dir/${CMAKE_INSTALL_MANIFEST}" "")
foreach(file ${CMAKE_INSTALL_MANIFEST_FILES})
  file(APPEND "project_dir/${CMAKE_INSTALL_MANIFEST}" "${file}\n")
endforeach()
Run Code Online (Sandbox Code Playgroud)

所以我猜问题是权限?但是我和sudo一起运行所以我不明白这是怎么回事.

cmake

5
推荐指数
0
解决办法
1395
查看次数

什么时候std :: shared_ptr释放它的对象?

我使用GCC 4.8.4在Ubuntu 14.04上,我的代码类似于以下内容:

std::shared_ptr<MyClass> my_shared_object = set elsewhere...
MyFunction(*my_shared_object);
Run Code Online (Sandbox Code Playgroud)

其中MyFunction的签名如下所示:

void MyFunction(const MyClass& my_object)
Run Code Online (Sandbox Code Playgroud)

完整的代码可以在这里找到

但是,我发现my_object实际上超出了范围MyFunction.我的想法是,my_shared_object只有在超出范围后,意志才会释放其内容,这意味着在MyFunction返回之后.我不确定我是误解std::shared_ptr还是可能这是一个GCC错误.

我想这个问题归结为:当我取消引用std :: shared_ptr时,这是否保证std::shared_ptr只要使用取消引用就会持续存在?

c++ resource-management shared-ptr c++11

4
推荐指数
1
解决办法
943
查看次数

标签 统计

c++ ×2

bitset ×1

c++11 ×1

cmake ×1

resource-management ×1

shared-ptr ×1

sse ×1