现在我有一个.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) 我需要能够检索单元测试的项目目录路径,以便加载测试所需的一些文件.如果解决方案结构和绝对路径将来发生变化,我不想对其进行硬编码.
我正在寻找一些关于如何实现与a一起使用的自定义分配器的指针std::map.我有兴趣用数百万个条目填充地图而不为容器中的每个元素分配(这是此容器的默认值).这样做的原因是将数据传递给使用地图存储图表样本的第三方库(QCustomPlot),并且在绘制大型时间序列时我感觉性能受到影响.
如果std::map事先已知大小,是否可以通过一次分配来完成此操作?
编辑:节点将按升序输入容器.
我正在尝试构建一个 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) 看看这个简单的类:
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)然后Expr1和Expr2被输出之前评估Expr1印刷?
基本上我可以说我有一个类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; 组; }.如果我能找到托管对象,我知道如何做其余的事情.在构造函数中传递它是不在桌面上的.
我希望能够使用Visual Studio单元测试框架来测试使用QT Visual Studio外接程序创建的Qt库.目前,没有开箱即用的方法来创建具有Qt元对象编译器支持的本机C++单元测试.需要这个是你想要使用Q_OBJECT宏的单元测试类.
如果我正在生成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++ ×6
unit-testing ×2
c# ×1
c++11 ×1
clang-tidy ×1
cmake ×1
gcc ×1
node-gyp ×1
node-modules ×1
node.js ×1
qcustomplot ×1
qt ×1
reflection ×1
stdmap ×1