小编kir*_*gum的帖子

如何将git commit-number包含到c ++可执行文件中?

我使用git作为我的c ++项目的版本跟踪器.

有时我需要重复计算,我想知道我使用的程序版本.

将#提交放入主可执行文件的好方法是什么?换一种说法.我希望程序在运行程序时告诉我介绍性消息中当前提交的#.

我能想到的一种方法是让shell中的c ++程序午餐"git log"并提取commit#但是我不确定如何在make期间执行它.

(我使用linux)

c++ git makefile

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

有没有办法打印配置文件的升级程序选项

我正在使用boost :: program_options从配置文件中获取参数.

据我所知,我可以手动创建一个文件,程序选项将解析它.但我正在寻找程序自动生成文件的方法.意思是打印出选项的名称及其值.例如:

>./main 
Run Code Online (Sandbox Code Playgroud)

没有选项会生成看起来像这样的init.cfg

[wave packet]
width = 1
position = 2.0
[calculation parameters]
levels = 15
Run Code Online (Sandbox Code Playgroud)

然后我会进入该文件使用文本编辑器更改值并使用此文件:

>./main init.cfg
Run Code Online (Sandbox Code Playgroud)

一个好方法来解决这个问题就是让variables_map有operator<<.这样我就可以把它写到文件中.改变价值观.读取文件.所有格式相同,无需编写每一行.

我在文档或示例中找不到类似的东西.如果可能,请告诉我

编辑:Sam Miller展示了如何分段解析ini文件.但是,从boost :: program_options :: variables_map vm获取值仍然存在问题.我尝试了以下内容

  for(po::variables_map::iterator it = vm.begin(); it != vm.end(); ++it)
  {
    if(it->first!="help"&&it->first!="config")
    cout << "first - " << it->first << ", second - " << it->second.value() << "\n";
  }
Run Code Online (Sandbox Code Playgroud)

而不是it->second.value(),得到一个错误.我也试过了it->second.我也有一个错误:

icpc -lboost_serialization -lboost_program_options -c programOptions.cc
programOptions.cc(60): error: no operator "<<" matches these operands
            operand types …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-program-options

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

是否存在用于常微分方程(ODE)求解器的c ++库?

更具体地说,我对8阶Dormand-Prince嵌入式方法感兴趣,它基于Runge-Kutta和刚性方程.

我使用Numerical Recipes 3但我经常在编译它们的库时遇到问题.我想知道其他选择.

c++ numerical-methods ode differential-equations

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

在cmake和make中运行shell命令(ctags)

我正在用vim编写一个c ++项目.

我想在运行make时运行一个ctagscommand(ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .)来生成引用.

我认为这样做的方法是使用,add_custom_command但我对如何将它集成到CMakeLists.txt感到困惑.

cmake ctags

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

语义 - 反应组件中的"as"道具是什么?

as被定义为An element type to render as (string or function).语义-UI-react中的大多数组件.那是什么意思?

我的理解是它以某种方式改变了组件as.

例:

https://react.semantic-ui.com/modules/sidebar 已经Sidebar as={Menu}那么孩子们<Menu.Item name='...'>不典型<Menu/>时所需的开始菜单.

semantic-ui-react

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

使用gsl和c ++时如何避免静态成员函数

我想在c ++类中使用GSL而不将成员函数声明为static.原因是因为我不太了解它们,我不确定线程​​的安全性.从我读到的,std::function可能是一个解决方案,但我不知道如何使用它.

我的问题归结为如何static在声明中删除g

#include<iostream>
#include <functional>
#include <stdlib.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_monte.h>
#include <gsl/gsl_monte_plain.h>
#include <gsl/gsl_monte_miser.h>
#include <gsl/gsl_monte_vegas.h>


using namespace std;

class A {
public:
  static double g (double *k, size_t dim, void *params)
  {
    double A = 1.0 / (M_PI * M_PI * M_PI);
    return A / (1.0 - cos (k[0]) * cos (k[1]) * cos (k[2]));
  }
  double result() {
    double res, err;

    double xl[3] = { 0, 0, 0 …
Run Code Online (Sandbox Code Playgroud)

c++ callback gsl c++11 std-function

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

如何为在线Flash游戏构建机器人?

有很多Flash游戏要求你做重复的动作.一个例子是FarmVille或获取在线扑克游戏的统计数据.

在屏幕上看到的内容,机器人算法和点击鼠标之间创建界面的最佳方法是什么?

所以基本上,当我在脸书上玩德州扑克时,如果我得到AA,我希望机器人点击全押.如果我没有获得AA,我想弃牌.这只是一个例子,而不是实际的策略.或者另一个例子是在farmville中路由任务.

所以基本上.它必须抓住屏幕的图片.识别模式并将其转换为算法的输入.输出算法将点击其他一些(可能是相同的)模式.

有什么建议?

browser flash mouse bots

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

如何通过boost减少clang_complete搜索的时间

我喜欢和vim一起使用clang.

我一直有的一个问题就是每当我加入boost时,每当我输入"."时clang就会通过boost库.在一个对象名称之后.这需要5-10秒.

由于我没有对boost标题进行更改,有没有办法通过boost缓存搜索?如果没有,有没有办法从自动完成搜索中删除提升?

更新(1)以回应adaszko的回答:let g:clang_use_library = 1

  1. 我输入变量的名称.
  2. 我按^ N. Vim开始搜索boost树.它自动完成变量.
  3. 我按下"." 并得到以下错误:
Error detected while processing function ClangComplete:
line   35:
Traceback (most recent call last):
Press ENTER or type command to continue
Error detected while processing function ClangComplete:
line   35:
  File "<string>", line 1, in <module>
Press ENTER or type command to continue
Error detected while processing function ClangComplete:
line   35:
NameError: name 'vim' is not defined
Press ENTER or type command to continue
Error detected while processing …
Run Code Online (Sandbox Code Playgroud)

vim boost clang code-completion clang-complete

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

有没有办法看到前一个":!g ++%"的输出而不重新运行?

编码时,我喜欢通过运行来检查代码:! g++ %.我将命令映射到<F5>.有时需要一段时间来编译,我想看到错误而不花时间重新编译.此外,有时我想将新输出与之前的输出进行比较.

有没有办法看到以前的输出:! ...

vim

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

使用boost.serialization序列化Eigen的矩阵

我正在尝试序列化Eigen的矩阵.这样我就可以序列化一个更复杂的对象.我使用Matrix作为基类,并在派生类中包含序列化.我很困惑如何处理Matrix.data(),它返回一个c风格的数组(如果我是正确的).这是我的尝试:

#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>

template < class TEigenMatrix>
class VariableType : public TEigenMatrix {
private:
  friend class boost::serialization::access;
  template<class Archive>
  void serialize(Archive & ar, const unsigned int version)
  {
      ar & this.data();
  }
public:
};
Run Code Online (Sandbox Code Playgroud)

我想用它作为"包装器":

VariableType<Matrix<double,3,1>> serializableVector;
Run Code Online (Sandbox Code Playgroud)

代替

Matrix<double,3,1> vector;
Run Code Online (Sandbox Code Playgroud)

derived-class boost-serialization eigen

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