小编W. *_*man的帖子

如何向流操作符添加缩进

在我们的项目中,我们在对象模型中使用c ++流操作符(<<)来打印出易于读取的数据格式.一个简单的例子是这样的:

std::ostream& operator<<(std::ostream & oStream, const OwnClass& iOwnClass) {
    oStream << "[SomeMember1: " << iOwnClass._ownMember1 << "]\n";
    oStream << "[SomeMember2: " << iOwnClass._ownMember2 << "]\n";
}
Run Code Online (Sandbox Code Playgroud)

在日志中导致这种情况:

[SomeMember1: foo]
[SomeMember2: bar]
Run Code Online (Sandbox Code Playgroud)

我们现在想要的是能够缩进该运算符的结果.某些调用类可能不希望得到这样的结果,但是想要在每行之前添加2个空格.我们可以在我们的类中添加一个指定缩进的成员,但这似乎不是一个优雅的解决方案.

当然这不是一个很大的问题,但是如果这样做的话,我们的日志记录会更好.

谢谢

c++ operator-overloading indentation stream

13
推荐指数
2
解决办法
6046
查看次数

如何从Java呈现精美的桌面通知?

我正在编写这个非常基本的J2SE应用程序,它不时地向用户发出一些信息.目前我正在使用SystemTray和TrayIcon类来显示通知,但我对此并不满意.它不允许我调整通知,也不允许他们好看.

那么,有没有人知道一个易于使用的库来生成好的通知?

顺便说一句,我将移植到Linux(Ubuntu),但将在那里使用notify-OSD,这正是我需要的.

java notifications

11
推荐指数
1
解决办法
8890
查看次数

从文本文件加载std :: map

这是一件非常简单的事情,所以我想保持它听起来很简单.我想要的只是从文件中加载一堆键值派,并将它们填充到地图中.我不关心文本的结构,只要它易于阅读.

我现在拥有的是:

  • 带有xsd生成代码的xml(overkill)
  • 协议缓冲区(也是矫枉过正)
  • INI样式文本文件

我喜欢INI文件的语法,但我不想为此编写解析器.听起来像我会做很多人在我面前做过的事情.是不是有某种类型的库来读取这样的简单结构化文件?

c++ map text-parsing

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

为什么 tarball 称为 tarball 而不仅仅是 tar?

这可能听起来像是一个奇怪的问题,但我真的很想知道为什么我们使用这个词。一定有一个很好的理由。

tar

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

如何忽略C++中动态链接库的main方法

在我们的应用中,我们使用了几个动态链接库 我们最近更新了其中一个库的版本.该库的开发人员提供了一个主要方法,因为这个新版本(除了打印Hello World之外什么也不做).

问题是我们正在使用GTest和GMock,它们会生成自己的主要方法.当我们现在运行我们的测试二进制文件时,我们只得到"Hello World",因此正在采用错误的主方法.

我们如何强制使用主要的测试方法?

更新:这似乎是一个GMock/GTest问题.主要方法通常是生成的,但事实并非如此,因为它现在找到了一个已经存在的主方法.

c++ shared-libraries googletest googlemock

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

如何将"任何类型的数据"传递给C++中的函数

假设我有一个类Handler,其中包含一些子类,如stringhandler,SomeTypeHandler,AnotherTypeHandler.Handler类将方法"handle"定义为所有子类的公共接口.对于不同的处理程序,"处理"的逻辑完全不同.

所以我需要做的是将任何值传递给handle方法.然后,特定类可以将"任何"转换为他们期望的类型.

基本上我需要的是像java类Object:D

我尝试的第一件事是void*,但显然你做不到B* someB = dynamic_cast<B*>(theVoidPointer),所以那里没有运气.

我的第二个想法是使用boost::any.但是,使用boost :: any的要求是该值必须是copy cunstructable,而我的数据不是这种情况.

有什么想法让这个工作?

谢谢

编辑:请注意,我知道我可以使用一个没有成员的SomeData类,并让我的数据成为其子类,但我正在寻找一种更通用的方法,它不需要我自己创建包装类.

c++ pointers boost-any

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

我可以拆分grails的config.groovy文件吗?

由于文件中存在敏感代码config.groovy,我担心我的朋友会在此文件中提交错误.获得svn更新时,我们也会得到错误的配置代码.

我可以将代码分开config.groovy,使敏感代码保持不变,另一个可以经常更改吗?

grails

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

你可以使用stringstream安全地双向转换吗?

我有这种情况,使用stringstream将double转换为字符串.现在,我必须在其他地方取回该值(不,我无法访问原始的double),所以我必须解析格式化的字符串.

当然,我也可以用字符串流来读它,但这样安全吗?对所有价值观而言,它总能奏效吗?

std::ostringstream doubleToString;
double myDouble = 3.14;
doubleToString << myDouble;
std::string convertedDouble = doubleToString.str();

std::istringstream stringToDouble(convertedDouble);
double newDouble;
stringToDouble >> newDouble;
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,myDouble总是等于newDouble吗?

注意:边际差异(0.00000000001)不是我关注的问题.

c++ formatting stringstream

5
推荐指数
1
解决办法
104
查看次数

C++子串多字节字符

我有这个std :: string,其中包含一些跨越多个字节的字符.

当我对此字符串执行子字符串时,输出无效,因为当然,这些字符计为2个字符.在我看来,我应该使用wstring,因为它将这些字符存储为一个元素而不是更多.

所以我决定将字符串复制到wstring中,但是当然这没有意义,因为字符仍然分为2个字符.这只会让情况变得更糟.

将字符串转换为wstring有一个很好的解决方案,将特殊字符合并为1个元素而不是2个元素.

谢谢

c++ character-encoding wstring

4
推荐指数
2
解决办法
7244
查看次数

如何在扩展中使用 VSCode 产品图标作为命令

我正在尝试向运行我的命令的“编辑器/标题”部分添加一个按钮。在我当前的配置中,通过单击 3 个按钮展开菜单时会显示我的命令名称。我想要的是显示一个运行我的命令的图标(如拆分编辑器按钮)。

从文档中我发现应该可以为图标提供 svg 文件,但我更喜欢使用产品图标中的图标。这样图标就可以随着主题而改变。

这是否可能,或者我只是配置错误?

这是我到目前为止的配置:

"contributes": {
    "commands": [
        {
            "command": "my-extension.my-command"
            "title": "My Command",
            "icon": "preview" // <-- this refers to the icon from 'product icons'
        }
    ],
    "menus": {
        "editor/title": [
            {
                "when": "resourceExtname == .xyz",
                "command": "my-extension.my-command"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

icons visual-studio-code vscode-extensions

3
推荐指数
1
解决办法
1566
查看次数