小编Dar*_*nas的帖子

Clang-tidy 文件:如何在多行中列出检查

现在我有一个.clang-tidy包含大量检查列表的文件,它们都在一行中,如下所示:

Checks: '-*,bugprone-*,-bugprone-narrowing-conversions, cert-*, -cert-err58-cpp, clang-analyzer-*,cppcoreguidelines-*,-cppcoreguidelines-narrowing-conversions...'
Run Code Online (Sandbox Code Playgroud)

有没有办法在多行中列出每个检查(启用或禁用)以便于版本控制?

现在我切换自动换行,这有助于编辑,但在代码审查中很难区分。

我正在寻找这样的东西:

Checks:
'-*,'
'cert-*,etc-*,'
...
Run Code Online (Sandbox Code Playgroud)

c++ clang-tidy

15
推荐指数
1
解决办法
725
查看次数

如何使用CppUnitTestFramework在Visual Studio本机C++单元测试中获取$(ProjectDir)路径?

我需要能够检索单元测试的项目目录路径,以便加载测试所需的一些文件.如果解决方案结构和绝对路径将来发生变化,我不想对其进行硬编码.

c++ unit-testing

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

如何实现与std :: map一起使用的自定义分配器?

我正在寻找一些关于如何实现与a一起使用的自定义分配器的指针std::map.我有兴趣用数百万个条目填充地图而不为容器中的每个元素分配(这是此容器的默认值).这样做的原因是将数据传递给使用地图存储图表样本的第三方库(QCustomPlot),并且在绘制大型时间序列时我感觉性能受到影响.

如果std::map事先已知大小,是否可以通过一次分配来完成此操作?

编辑:节点将按升序输入容器.

c++ stdmap c++11 qcustomplot

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

如何根据具有相对位置的共享库构建 nodejs C++ 插件

我正在尝试构建一个 node.js C++ 使用,node-gyp但无法弄清楚如何指定,-Wl,-rpath,$ORIGIN以便从 node 加载时它可以找到与addon.node.

我试过这样设置我的binding.gyp

"libraries": [
          "-L../../install_release_x64/",
          "-llibppp"
        ],
        "ldflags": [
          "-Wl,-rpath,'$ORIGIN'"
        ],
        "cflags_cc": [
          "-fexceptions",
          "-fPIC",
          "-Wno-unknown-pragmas"
        ]
Run Code Online (Sandbox Code Playgroud)

但是当我运行时$ readelf -d addon.node,结果是这样的:

 Dynamic section at offset 0x7d10 contains 29 entries:
Tag        Type                         Name/Value
0x0000000000000001 (NEEDED)             Shared library: [liblibppp.so]
0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
0x000000000000000e (SONAME)             Library soname: [addon.node]
0x000000000000000f (RPATH)              Library rpath: [RIGIN]
0x000000000000000c (INIT)               0x37a0 …
Run Code Online (Sandbox Code Playgroud)

gcc compiler-flags node.js node-gyp node-modules

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

运营商的优先顺序?

看看这个简单的类:

class A {
    int *val;
public:
    A() { val = new int; *val = 0; }
    int get() { return ++(*val); }
};
Run Code Online (Sandbox Code Playgroud)

为什么当我运行此代码时它会打印21:

int main() {
    A a, b = a;
    cout << a.get() << b.get();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但如果我像这样运行它打印12出的是我所期待的:

int main() {
    A a, b = a;
    cout << a.get();
    cout << b.get();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?运算符优先级?仅供参考,这是一个C++测试问题,而不是生产代码.

编辑: 它意味着,当我cout << (Expr1) << (Expr2)然后Expr1Expr2被输出之前评估Expr1印刷?

c++ operator-precedence

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

有没有办法从另一个的构造函数中获取父(托管对象)?

基本上我可以说我有一个类A,它有一个B类的成员.是否有可能使用反射从B中的构造函数中获取创建B实例的A实例(如果有的话)?

class A
{
    private B b = new B();
}

class B
{
    public B()
    {
        // How could I get the instance of A (object), if any, that is creating me?
    }
}
Run Code Online (Sandbox Code Playgroud)

伙计们,我的最终目标是创建一个通用的可绑定属性类,它能够找到其父级的PropertyChanged接口(如果已实现)以自动通知属性.假设我有一个名为MyBindableProp的类,它在实现INotifyPropertyChanged接口的类中使用.我想要的是通过将属性简单地声明为MyBindableProp {get; 组; }.如果我能找到托管对象,我知道如何做其余的事情.在构造函数中传递它是不在桌面上的.

c# reflection

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

如何在Qt - Visual Studio 2013项目中设置单元测试

我希望能够使用Visual Studio单元测试框架来测试使用QT Visual Studio外接程序创建的Qt库.目前,没有开箱即用的方法来创建具有Qt元对象编译器支持的本机C++单元测试.需要这个是你想要使用Q_OBJECT宏的单元测试类.

c++ qt unit-testing visual-studio

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

检查是否从CMake生成Visual Studio解决方案或Makefile

如果我正在生成Visual Studio解决方案或Makefile,我怎么知道我的CMakeLists.txt?

我需要将外部项目添加到解决方案中,如下所示:

INCLUDE_EXTERNAL_MSPROJECT(cs-tests ${CMAKE_CURRENT_SOURCE_DIR}/cstests/cstests.csproj)
Run Code Online (Sandbox Code Playgroud)

但我只想在打电话时这样做

cmake .. -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 12 2013"
Run Code Online (Sandbox Code Playgroud)

不是我打电话的时候:

cmake -G "NMake Makefiles" ..
Run Code Online (Sandbox Code Playgroud)

c++ cmake visual-studio

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