小编P.X*_*P.X的帖子

cmake如何为Visual Studio 2015项目指定"Platform Toolset"?

有一个由cmake生成的VS2015项目,我想改变它的"平台工具集"

"平台工具集"位置

我尝试过这些解决方案,但无法工作:

  1. 设置(CMAKE_VS_PLATFORM_TOOLSET"v120")

  2. cmake -T"v120"

有人可以帮忙吗?谢谢.

cmake visual-studio

17
推荐指数
2
解决办法
1万
查看次数

我们可以使用可变参数模板函数来过滤特定类型的参数,然后将其余的函数传递给另一个函数吗?

例如

// we have a variadic function
void print(...);    

// I need such a function to filter parameters of specific type
template<typename... Args>
void print_filter(const Args&... args)
{
    // filter non-integral type
    print(integral args);
}

// my goal, all non-integral type can be ignored:
print_filter(1.0, 2, "abc", 3) == print(2, 3)
Run Code Online (Sandbox Code Playgroud)

我已经用尽了我的知识......你能帮忙吗?或者只是为了证明这是不可能的,这也是非常有帮助的.谢谢

c++ templates variadic-templates c++11

9
推荐指数
2
解决办法
593
查看次数

是否可以通过thread_local实现boost::thread_specific_ptr?

这个问题可能看起来很奇怪。我想这样做是因为我们有一些代码需要在多个平台上构建,但有些平台不支持 thread_local,然后使用 boost::thread_specific_ptr 代替。然而,为每个平台(x86/x64/arm、调试/发布、操作系统,太多)构建 boost 二进制文件是令人不快的。

我想知道是否可以通过 thread_local 导入 thread_specific_ptr ,以便我们可以使客户端代码更加优雅(避免#ifdef)

我想要一个头文件,例如:

#if HAS_THREAD_LOCAL
class thread_specific_ptr
{
    ... // use thread_local to implement
};
#else
using boost::thread_specific_ptr
#endif
Run Code Online (Sandbox Code Playgroud)

我找不到路,也许你可以,谢谢。

c++ boost thread-local-storage c++11

6
推荐指数
1
解决办法
2587
查看次数

为什么GetFileAttributesW(L"C:")返回FILE_ATTRIBUTE_REPARSE_POINT?

通常,GetFileAttributesW(L"C:")return 0x10(FILE_ATTRIBUTE_DIRECTORY),这是合理的.

在某些情况下,GetFileAttributesW(L"C:")将返回0x2416(FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_REPARSE_POINT | FILE_ATTRIBUTE_NOT_CONTENT_INDEXED)

我想知道是什么让它发生以及如何摆脱它.这个问题使得boost::filesystem::canonical无法正常工作.你有什么主意吗?

c++ windows winapi boost

2
推荐指数
1
解决办法
921
查看次数