小编Mik*_*owe的帖子

C++最佳实践:返回引用与对象

我正在尝试学习C++,并试图理解返回的对象.我似乎看到了两种方法,并且需要了解什么是最佳实践.

选项1:

QList<Weight *> ret;
Weight *weight = new Weight(cname, "Weight");
ret.append(weight);
ret.append(c);
return &ret;
Run Code Online (Sandbox Code Playgroud)

选项2:

QList<Weight *> *ret = new QList();
Weight *weight = new Weight(cname, "Weight");
ret->append(weight);
ret->append(c);
return ret;
Run Code Online (Sandbox Code Playgroud)

(当然,我也可能不理解这一点).

哪种方式被认为是最佳实践,应该遵循?

c++

42
推荐指数
3
解决办法
4万
查看次数

接口属性的 TypeScript jsdoc

我有一个带有单字符属性名称的 TypeScript 接口(设计约束)。我想使用 JSDoc 来记录这个界面以帮助在 vscode 中自动完成。

现在的界面如下:

export interface ISource {
    b: string
    d: string
    f: string
    h: string
    M: number
    L: number
    P: number
    n: string
    r: string
    u: string
    p: string
}
Run Code Online (Sandbox Code Playgroud)

非工作尝试是:

/**
* @typedef {object} ISource
* @property {string} ISource.b - Bias: bias_text[rating.bias[0]],
* @property {string} ISource.d - Domain: rating.domain.replace(/^www\./, ""),
* @property {string} ISource.f - FacebookUrl: _.lowerCase(rating.facebook_url),
* @property {string} ISource.h - Host: `https://${rating.domain}`,
* @property {number} ISource.M - MozRankUrl: rating.moz_rank_url,
* @property {number} …
Run Code Online (Sandbox Code Playgroud)

jsdoc typescript visual-studio-code

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

一般来说,在ucLinux上,ioctl比写入/ sys文件系统更快吗?

我有一个我正在使用的嵌入式系统,它目前使用sysfs来控制某些功能.

但是,如果可能的话,我们希望加快功能.

我发现这个子系统也支持和ioctl接口,但在重写代码之前,我决定通过搜索来查看哪个是更快的接口(在ucLinux上):sysfs或ioctl.

有没有人能够很好地理解这两种实现方式,让我粗略地了解每种实现的开销差异?我正在寻找通用信息,例如"ioctl更快,因为你已经从函数调用中删除了文件层".或者"它们大致相同,因为sysfs具有非常简单的界面".

2013年10月24日更新:

我目前正在做的具体情况如下:

int fd = open("/sys/power/state",O_WRONLY);
write( fd, "standby", 7 );
close( fd );
Run Code Online (Sandbox Code Playgroud)

在kernel/power/main.c中,处理此写操作的代码如下所示:

static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr,
               const char *buf, size_t n)
{
#ifdef CONFIG_SUSPEND
    suspend_state_t state = PM_SUSPEND_STANDBY;
    const char * const *s;
#endif
    char *p;
    int len;
    int error = -EINVAL;

    p = memchr(buf, '\n', n);
    len = p ? p - buf : n;

    /* First, check if we are requested to hibernate */
    if (len == …
Run Code Online (Sandbox Code Playgroud)

linux sysfs

8
推荐指数
1
解决办法
3292
查看次数

Angular/Karma/Jasmine:TypeError:'undefined'不是对象(评估'scope.awesomeThings')

尝试为https://github.com/beeman/loopback-angular-admin设置单元测试.

app/modules/about/controllers/about.controller.js(我添加$scope.awesomeThings了用于测试的东西加载范围):

'use strict';
angular.module('com.module.about')
  /**
   * @ngdoc function
   * @name com.module.about.controller:AboutCtrl
   * @description
   * # AboutCtrl
   * Controller of the clientApp
   */
  .controller('AboutCtrl', function($scope) {
    $scope.angular = angular;
    $scope.awesomeThings = [1, 2];
  });
Run Code Online (Sandbox Code Playgroud)

客户端/ test/modules/about/controllers/about.ctrl.js上的jasmine测试

'use strict';

describe('Controller: AboutCtrl', function () {
  var AboutCtrl,
    scope;

  // load the controller's module
  beforeEach(module('gettext'));
  beforeEach(module('ui.router'));
  beforeEach(module('com.module.about'));

  // Initialize the controller and a mock scope
  beforeEach(inject(function ($controller, $rootScope) {
    scope = $rootScope.$new();
    AboutCtrl = $controller('AboutCtrl', {
      '$scope': scope
    }); …
Run Code Online (Sandbox Code Playgroud)

angularjs karma-jasmine

8
推荐指数
2
解决办法
3万
查看次数

用于电池电压显示的平滑功能可减少嵌入式系统中的尖峰

读取嵌入式设备中的电池电压.但是,实际电压根据系统负载而变化很大.我们需要一种降低电压波动的方法来显示最佳值.

目前,我们正在使用滚动/移动平均线.然而,在过去的15个读数中,结果仍然波动太大.

在阅读平滑算法时,似乎b样条,内核滤波器或其他一些平滑算法是理想的.但是,我找不到一个简单的例子,它不使用mathcad中的numpy或内部函数或类似的东西.

有人知道一个简单的实现功能,可以帮助解决这个问题吗?这是一个C++项目(使用Qt 4.5),只有最小的库.我宁愿留在整数域(以毫伏为单位显示电压,从3300-4200).

TIA迈克

c++ embedded battery

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

Docker Linux Mint NetworkManager 无法使用 udev 找到设备

使用:

Linux 4.13.0-26-generic #29~16.04.2-Ubuntu SMP Tue Jan 9 22:00:44 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我一直注意到我的系统在工作时犹豫不决,最终将其追溯到 Docker veth 设备上发生的一些不稳定的事情。似乎每分钟发生一次以下情况:

  • NetworkManager 抱怨 udev 找不到设备
  • 它删除/重新创建设备,然后抱怨没有找到 ifupdown 配置
  • 它抱怨驱动程序“veth”不支持运营商检测

以下几行是一个示例界面:

12:17:26 NetworkManager[1256]: <warn>  device (vetha2ac803): failed to find device 60 'vetha2ac803' with udev       
12:17:26 NetworkManager[1256]: <info>  manager: (vetha2ac803): new Veth device (/org/freedesktop/NetworkManager/Devices/78)
12:17:26 NetworkManager[1256]: <info>  devices added (path: /sys/devices/virtual/net/vetha2ac803, iface: vetha2ac803)
12:17:26 NetworkManager[1256]: <info>  device added (path: /sys/devices/virtual/net/vetha2ac803, iface: vetha2ac803): no ifupdown configuration found.
12:17:26 kernel:                       eth0: renamed from vetha2ac803
12:17:26 NetworkManager[1256]: …
Run Code Online (Sandbox Code Playgroud)

udev docker networkmanager

6
推荐指数
0
解决办法
1496
查看次数