get_equities()
函数感兴趣。你知道吗test.cpp
:
#include "omp/EquityCalculator.h"
#include <iostream>
#include <boost/python.hpp>
using namespace omp;
using namespace std;
// Function prototype (declaration)
vector<double> get_equities(vector<string> args);
int main(int argc, char *argv[])
{
vector<string> args(argv, argv + argc);
vector<double> equities;
equities = get_equities(args);
};
vector<double> get_equities(vector<string> args) {
int argc = args.size();
string board_string = args[1];
EquityCalculator eq;
vector<CardRange> ranges;
for( int i = 2; i < argc; i++ ) {
ranges.push_back(args[i]);
};
uint64_t board = CardRange::getCardMask(board_string);
eq.start(ranges, board);
cout << "running" << endl;
eq.wait();
vector<double> result;
auto r = eq.getResults();
// 2 to 4; 2 to 3
//todo:
for( int i = 2; i < argc; i++ ) {
result.push_back(r.equity[i - 2]);
}
cout << result[0] << endl;
return result;
}
BOOST_PYTHON_MODULE(cpp_equity)
{
using namespace boost::python;
def("get_equities", get_equities);
}
这是指一个单独的类EquityCalculator
(它通过递归includes引用许多其他类)。你知道吗
在教程之后,我希望我只需要声明这个函数,但是在尝试使用设置.py我有一些错误:
In file included from test.cpp:1:0:
omp/EquityCalculator.h:76:21: error: ‘std::function’ has not been declared
std::function<void(const Results&)> callback = nullptr,
^~~~~~~~
omp/EquityCalculator.h:76:29: error: expected ‘,’ or ‘...’ before ‘<’ token
std::function<void(const Results&)> callback = nullptr,
^
omp/EquityCalculator.h:202:10: error: ‘function’ in namespace ‘std’ does not name a template type
std::function<void(const Results& results)> mCallback;
^~~~~~~~
omp/EquityCalculator.h:74:10: error: default argument missing for parameter 6 of ‘bool omp::EquityCalculator::start
(const std::vector<omp::CardRange>&, uint64_t, uint64_t, bool, double, int)’
bool start(const std::vector<CardRange>& handRanges, uint64_t boardCards = 0, uint64_t deadCards = 0,
^~~~~
这是否意味着我需要声明EquityCalculator
类和任何被访问的方法?EquityCalculator
使用的其他类呢?你知道吗
编辑
感谢您在上的注释,将此添加到.h文件解决了我的问题。我现在可以跑了设置.py成功。你知道吗
但是-当我将生成的.so导入Python时,我得到:
ImportError: ./cpp_equity.so: undefined symbol: _ZN3omp13CombinedRangeC1Ev
我的生活中有什么遗漏吗设置.py?你知道吗
是否需要将“omp”目录添加到设置.py例如文件?你知道吗
谢谢你的帮助。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐