小编Pie*_*tro的帖子

boost :: program_options:带有固定和变量令牌的参数?

是否可以使用boost :: program_options这样的参数?

program  -p1 123 -p2 234 -p3 345 -p12 678
Run Code Online (Sandbox Code Playgroud)

即,是否可以-p动态地用第一个标记(例如)后跟数字来指定参数名称?
我想避免这个:

program  -p 1 123 -p 2 234 -p 3 345 -p 12 678
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-program-options

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

将OpenMP与llvm-clang一起使用

所以我尝试将OpenMP与最新版本的clang一起使用clang version 3.4.2 (tags/RELEASE_34/dot2-final).按照程序编译并添加PATH omp.h,然后使用以下命令编译我的hello.c:

clang -fopenmp hello.c
Run Code Online (Sandbox Code Playgroud)

然后运行它,仍然不能使用超过1个线程:

Bash-4.1$ ./a.out 
Hello from thread 0, nthreads 1
Run Code Online (Sandbox Code Playgroud)

PS:我试图手动导出,export OMP_NUM_THREADS=8但也没有解决任何问题.有任何想法吗?

更新:这是hello.c:

#include <omp.h>
#include <stdio.h>
int main() {
#pragma omp parallel
printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads());}
Run Code Online (Sandbox Code Playgroud)

c openmp llvm-clang

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

QSplitter有一个固定大小的小部件和一个可变大小的小部件?

是否有可能有一个QSplitter固定大小的窗口小部件和另一个可变大小的窗口小部件?

这段代码设置正确,但是当窗口调整大小时,拆分器会按比例更改初始窗口小部件的大小:

vSplitter = new QSplitter(Qt::Vertical, this);
vSplitter->addWidget(widget1);
vSplitter->addWidget(widget2);
QList<int> heights;
heights.push_back(550);
heights.push_back(1000);
vSplitter->setSizes(heights);

setCentralWidget(vSplitter);
Run Code Online (Sandbox Code Playgroud)

谢谢.

qt qsplitter

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

如何在 Microsoft Visual C++ 2019 中选择较旧的编译器?

如此处所述,在“项目设置”下,我应该能够指定用于当前项目的编译器。但是,我在 Visual Studio 2019 中找不到此菜单项。

我有 Visual C++ 2019 和 2013,并且想使用带有旧编译器的新 IDE。我该怎么做?

是否可以使用“社区”版本来做到这一点?

c++ visual-studio compiler-version

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

我得到了分段错误而不是异常

在下面的代码中,在第一次迭代中,我得到一个异常,在第二次迭代中,我得到一个没有打印错误消息的分段错误.似乎没有抓住异常:

int i = 0;
while(i++ < 10)
{
   try {
      cout << "Iteration: " << i << endl;
      // Code...
      cout << "OK" << endl;
   }
   catch(...)
   {
      cerr << "Error message" << endl;
      continue;
   }
}

Output:
Iteration 1
Error message
Iteration 2
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

这是正常的,还是出现了一些真正的错误?

如果它应该是相关的,那么在该代码块中我重置一个MySQL连接,当我检查连接是否关闭时会产生异常.

谢谢.


平台:
Linux - OpenSuse 11.4
C++ - GCC 4.5.1
Intel Xeon

c++ exception-handling exception try-catch segmentation-fault

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

boost :: program_options:如何忽略未知参数?

boost::program_options库中,我无法理解如何允许用户传递尚未添加的参数add_options().
我希望它被忽略,而不是终止程序.

c++ boost boost-program-options

6
推荐指数
2
解决办法
2092
查看次数

在没有Microsoft扩展的情况下构建Visual C++

我正在尝试在Microsoft Visual C++ 2013中构建一个禁用所有非标准扩展的项目.

#ifdef _MSC_VER
#include <windows.h>
#endif
Run Code Online (Sandbox Code Playgroud)

在配置属性 - > C/C++ - >语言中,我将"禁用语言扩展"设置为是(/ Za).
但是,构建以前的代码我得到的错误如下:

C:\ Program Files(x86)\ Windows Kits\8.1\Include\um\winnt.h(11527):错误C2467:匿名'struct'的非法声明

这意味着仍然定义了_MSC_VER宏,并且已经包含了"windows.h".

当且仅当我使用Visual C++时,如何包含文件?

如何设置Visual C++以便将代码编译为标准C++,将所有Microsoft扩展标记为错误?

c++ standards visual-c++

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

为什么 doxygen 总是重新处理每个文件?

构建项目时,仅重新编译上次构建后更改的文件。在 doxygen 中是否有可能获得类似的行为?

现在看来 doxygen 每当运行时总是对其生成的文件进行清理/重建。

对于大型项目,这种优化可以节省大量时间。

c++ optimization doxygen build

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

谷歌测试:如何测试所有可能的 N 类型对?

此代码将对TestMultiTypes[float, double] 和 [char, int] 类型对运行测试:

template <typename T>
class UtilsTestFixture2Types : public ::testing::Test {};

using Test2Types = ::testing::Types < std::pair<float, double>, std::pair<char, int> >;

TYPED_TEST_CASE_P( UtilsTestFixture2Types );

TYPED_TEST_P( UtilsTestFixture2Types, TestMultiTypes )
{
    typename TypeParam::first_type  p1 = 123;
    typename TypeParam::second_type p2 = 234;
    EXPECT_EQ( true, p2 < p1 );   // This will fail
}

REGISTER_TYPED_TEST_CASE_P( UtilsTestFixture2Types, TestMultiTypes );
INSTANTIATE_TYPED_TEST_CASE_P( Prefix, UtilsTestFixture2Types, Test2Types );
Run Code Online (Sandbox Code Playgroud)

现在,假设我必须对所有可能的 N 类型对运行测试。我是否必须手动列出它们,还是有一种简单的方法可以让 Google Test 知道我想测试所有可能的 N 值的组合?

参考文献: C++ 多参数与 GTest TYPED_TEST

c++ googletest

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

将参数解析为main()

在C++中,是否有一个完善的,完整的开源实现的实用程序来解析main()函数的参数?

我写了自己的,我看到了很多其他人.但是如果有更好的实现可用,我就会徘徊,它提供了相应可执行文件所需的所有功能.

c++ command-line-arguments

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