小编Tha*_*esy的帖子

包含#include指令的宏定义

有没有办法定义一个#include 在其体内包含指令的宏?

如果我只是把" #include",它给出了错误

C2162: "expected macro formal parameter"
Run Code Online (Sandbox Code Playgroud)

因为在这里我不是#用来连接字符串.
如果我使用" \# include",那么我收到以下两个错误:

error C2017: illegal escape sequence
error C2121: '#' : invalid character : possibly the result of a macro expansion
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

c c++ macros c-preprocessor

34
推荐指数
5
解决办法
3万
查看次数

使用std :: optional参数调用函数

我有一个功能,其签名是:

void func(std::optional<std::string> os = std::nullopt);
Run Code Online (Sandbox Code Playgroud)

(我正在走样,std::experimental::optional直到std::optional官方可用.)

但是,我很难干净地称呼它.编译器将拒绝执行两个隐式转换(const char*std::stringstd::optional<std::string>)与原始C-字符串字面来调用它.我可以这样做:

func(std::string("Hello"));
Run Code Online (Sandbox Code Playgroud)

并且编译器将确定需要a std::optional,并进行转换.但是,这太冗长了.感谢C++ 11,我也可以这样做:

func({"Hello"});
Run Code Online (Sandbox Code Playgroud)

虽然这样做更好,但仍然不理想.我希望能够像任何其他需要的一样调用此函数std::string.这可能吗?使函数采用另一种参数类型是可以的,只要它的行为类似于/可以直接转换为std::optional.谢谢.

c++ optional c++-standard-library boost-optional

10
推荐指数
2
解决办法
3057
查看次数

Swift 包管理器 - 没有清单错误

我创建了一个 Swift 包管理器库,并将它部署在我的 GitLab 上,标签号为 0.1.0。我现在正在尝试通过添加以下内容将此包添加到我的新蒸气项目中:

.package(url: "http://mygit.git/", from: "0.1.0").
Run Code Online (Sandbox Code Playgroud)

当我尝试进行“蒸汽更新”时,我收到一个 backgroundExecute 错误,说我的 SPM 没有 0.1.0 版的清单……

有任何想法吗?提前致谢!

git swift swift-package-manager vapor

10
推荐指数
1
解决办法
4325
查看次数

捕获macOS窗口的截图

注意:这个问题是故意很一般(比如他们的Objective-C和SWIFT代码示例要求),因为它是用来记录如何捕获窗口的截图在MacOS尽量通俗易懂越好.

我想在Objective-C/Swift代码中捕获macOS窗口的屏幕截图.我知道这是可能的,因为有多种方法可以在macOS上截取屏幕截图(⇧⌘4,Grab实用程序,screencapture在命令行中,...),但我不知道如何在我自己的代码中执行此操作.理想情况下,我可以指定一个特定应用程序的窗口,然后将其捕获到一个NSImage或者CGImage我可以处理并显示给用户或存储在文件中.

macos screenshot objective-c swift

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