我对私人方法和功能有疑问.假设我有一些不必在类中的实用方法.但是那些相同的方法需要调用我不想向用户公开的其他方法.例如:
Suspect.h
namespace Suspect {
/**
* \brief This should do this and that and more funny things.
*/
void VerbalKint(void); // This is for you to use
}
Run Code Online (Sandbox Code Playgroud)
Suspect.cpp
namespace Suspect {
namespace Surprise {
/**
* \brief The user doesn't need to be aware of this, as long
* the public available VerbalKint does what it should do.
*/
void KeyserSoze(void) {
// Whatever
}
} // end Surprise
void VerbalKint(void) {
Surprise::KeyserSoze();
}
}
Run Code Online (Sandbox Code Playgroud)
所以,这种布局是有效的.包含时Suspect.h,只有 …
我想知道如何从源代码安装TBB并使其在Linux系统上运行.我在使用它时遇到了一些问题,如果我通过软件包管理器安装TBB,则不会出现问题.
在TBB网页中,有一些关于如何执行此操作的指南,例如设置LD_LIBRARY_PATH和CPATH变量,或者获取tbbvars.sh文件.即使我这样做,当我尝试编译一个例子时,g ++说找不到tbb.
所以问题是如果它是如何设置所有东西(编译源代码,我应该设置哪些变量......)的简单方法,以便使用TBB.
谢谢.
注意:询问此问题时的库版本号是2(如果我没记错的话).我亲自测试了4.1版本的解决方案,但我认为它对当前版本也应该有效,4.2 (update 3)因为构建方法保持不变.
我刚刚开始使用伟大的点云库,并希望在一个观察者中显示两个点云,但每个点都有不同的颜色.
当我使用一个点云对象(指针?!)时,它工作正常,但如果我想添加第二个,只有第二个将显示在查看器中.
我正在使用pcl 1.6版,并且在本教程中非常类似.
也许你们有一个建议.
相关的代码段如下.提前致谢!!!
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer_two_clouds (new pcl::visualization::PCLVisualizer("3D Viewer"));
viewer_two_clouds->setBackgroundColor(0,0,0);
// cloud: green / cloud2: red
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZRGB> single_color1 (cloud, 0, 255, 0);
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZRGB> single_color2 (cloud2, 255, 0, 0);
//add both
viewer_two_clouds->addPointCloud<pcl::PointXYZRGB> (cloud, single_color1, "sample_cloud_1");
viewer_two_clouds->addPointCloud<pcl::PointXYZRGB> (cloud2, single_color2, "sample_cloud_2");
// set coordinateSystem and init camera
viewer_two_clouds->addCoordinateSystem(1.0);
viewer_two_clouds->initCameraParameters();
while(!viewer_two_clouds->wasStopped())
{
viewer_two_clouds->spinOnce();
boost::this_thread::sleep (boost::posix_time::microseconds(100000));
}
viewer_two_clouds->close();
Run Code Online (Sandbox Code Playgroud) 我有以下编译错误:
/usr/lib/qt-3.3/include/qobject.h: In copy constructor Product::Product(const Product&):
/usr/lib/qt-3.3/include/qobject.h:211: error: QObject::QObject(const QObject&) is private
Product.h:20: error: within this context
HandleTCPClient.cpp: In member function int Handler::HandleTCPClient(int, std::string, std::string):
HandleTCPClient.cpp:574: note: synthesized method Product::Product(const Product&) first required here
HandleTCPClient.cpp:574: error: initializing argument 1 of std::string productDetails(Product)
/usr/lib/qt-3.3/include/qobject.h: In member function Product& Product::operator=(const Product&):
Product.h:20: instantiated from void std::vector<_Tp, _Alloc>::_M_insert_aux(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, const _Tp&) [with _Tp = Product, _Alloc = std::allocator<Product>]
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:610: instantiated from âvoid std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = …Run Code Online (Sandbox Code Playgroud) 给定有向加权图,如何在所有顶点对之间找到最大流量(或最小边缘切割).
天真的方法就是调用像Dinic这样的Max Flow算法,其复杂度O((V^2)*E)为每对.
因此对于所有对都是如此O((V^4)*E).
是否有可能降低复杂性,O((V^3)*E)或O(V^3)通过一些优化?
每当我的Jenkins作业的构建完成,我就会使用Editable Email Notification插件(又名Email-ext插件)发送一封包含结果的电子邮件.此外,如果系统中存在某个文件,我正在修改消息的默认内容以通知该文件的存在.
为此,我正在使用Pre-send Script插件的字段.
LOG="log.txt"
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
touch ${WORKSPACE}/${LOG}
echo "this is just a log" >> ${WORKSPACE}/${LOG}
Run Code Online (Sandbox Code Playgroud)
File log = new File("${WORKSPACE}/${LOG}");
logger.println(log.text);
Run Code Online (Sandbox Code Playgroud)
执行构建时,Jenkins将在文件中创建${WORKSPACE}并填充它(我能够从Jenkins从站中的终端打印内容).
但是当尝试从Email插件访问它时,java.io.FileNotFoundException会引发异常:
java.io.FileNotFoundException: /home/jenkins/workspace/testJob/log.txt (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at groovy.util.CharsetToolkit.<init>(CharsetToolkit.java:69)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.newReader(DefaultGroovyMethods.java:16958)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.getText(DefaultGroovyMethods.java:16006)
at org.codehaus.groovy.runtime.dgm$381.doMethodInvoke(Unknown Source)
at org.codehaus.groovy.reflection.GeneratedMetaMethod$Proxy.doMethodInvoke(GeneratedMetaMethod.java:70)
at groovy.lang.MetaClassImpl$GetBeanMethodMetaProperty.getProperty(MetaClassImpl.java:3500)
at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:61)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227)
at Script1.run(Script1.groovy:59)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580) …Run Code Online (Sandbox Code Playgroud) 我正在尝试新增的右值参考(在vs2012 express中).
我不明白.给出下面的代码(大部分来自c ++标准,其中解释了std :: forward).
struct A
{
A(int& i, const float& j):
m_i(i),
m_j(j){}
int& m_i;
const float& m_j;
};
template<class T, class A1, class A2>
T* factory(A1&& a1, A2&& a2)
{
return new T(a1, a2);
}
void test()
{
A* a1 = factory<A>(1, 1.2f);
//How does this work ?
a1->m_i = 2;
}
Run Code Online (Sandbox Code Playgroud)
我不明白m_i绑定到哪里.
我将基本上有一个左值引用到右值引用(&&&),ref refpsing规则变为(&)只是一个简单的左值引用.但是参考什么?
我正在为Ubuntu 10.04调试一个C++应用程序,它有时会收到一个SIGKILL信号.我想抓住信号并阻止它杀死执行,只是为了看看我是否可以在那个精确的时刻获得应用程序状态的一些有用信息.
阅读gdb文档我找到了handle命令,所以我尝试将它应用于SIGKILL信号:
(gdb) handle SIGKILL stop nopass
Signal Stop Print Pass to program Description
SIGKILL Yes Yes No Killed
Run Code Online (Sandbox Code Playgroud)
所以,正如我所理解的那样:
stop
GDB should stop your program when this signal happens. This implies the print keyword as well.
print
GDB should print a message when this signal happens.
nopass
GDB should not allow your program to see this signal.
Run Code Online (Sandbox Code Playgroud)
一旦SIGKILL信号被发出,gdb应该以某种方式捕获它,打印消息,停止执行并且不要让应用程序自杀,对吧?
问题是,这不会发生,应用程序终止.
你知道我怎么能抓住这个信号?
实用信息:
我正在制作一个程序,该程序使用大量计时器,并且每隔 4 秒对php脚本进行在线发布。我正在编码QtCreator 5.1。我使用的类就像下面的类一样。
下面这个只是填充一个任务列表,但在8到12个小时的过程中,程序占用的内存一直在不断上升,逐渐上升。
使用此类时我做错了什么?我必须能够像现在一样继续在网上发帖,大约每 4 到 8 秒一次。
这是一个简单的类,用于处理我的一个流程:
头文件: tasklistprocess.h
#ifndef TASKLISTPROCESS_H
#define TASKLISTPROCESS_H
#include <QThread>
#include <QtCore>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QListWidget>
#include <QTabWidget>
#include "globalhelper.h"
#include "securityinfo.h"
class TaskListProcess : public QThread
{
Q_OBJECT
public:
explicit TaskListProcess(QListWidget *obj_main, QTabWidget *tabs_main, QString user, QObject *parent = 0);
signals:
void upTaskStorage(int key,QHash<QString,QString> item);
private:
GlobalHelper gh;
Securityinfo sci;
QNetworkAccessManager *nam;
QNetworkRequest request;
QByteArray data;
// this is the disposable params …Run Code Online (Sandbox Code Playgroud) 我有一个来自 GitHub 存储库的 JSON 回复,其中包含某个版本(assets文档中的数组)的可能下载列表。
我想获得浏览器的下载URL时,name资产端有x64.AppImage。
在 Ansible 中,过滤器是基于jmespath它的终端工具构建的,我可以使用以下表达式查询 url:
assets[?ends_with(name, 'x64.AppImage')].browser_download_url
Run Code Online (Sandbox Code Playgroud)
使用以下 playbook,查询 JSON 文档并将其存储在json_reply变量中。
---
- hosts: local
tasks:
- name: Get list of Rambox releases
uri:
url: "https://api.github.com/repos/saenzramiro/rambox/releases/latest"
body_format: json
register: json_reply
- name: Filter reply
debug: URL -> "{{ item }}"
with_items:
- "{{ json_reply.json | json_query(json_filter) }}"
vars:
- json_filter: assets[?ends_with(name, 'x64.AppImage')].browser_download_url
Run Code Online (Sandbox Code Playgroud)
但是,执行此操作会出现以下错误:
fatal: [localhost]: FAILED! => {
"msg": "JMESPathError in json_query filter …Run Code Online (Sandbox Code Playgroud) 几天前我不得不使用C,当使用指针时,我有点意外.
C中的一个例子:
#include <stdio.h>
#include <stdlib.h>
void GetPointer(int* p) {
p = malloc( sizeof(int) );
if(p) {
*p = 7;
printf("IN GetPointer: %d\n",*p);
} else {
printf("MALLOC FAILED IN GetPointer\n");
}
}
void GetPointer2(int* p) {
if(p) {
*p = 8;
printf("IN GetPointer2: %d\n",*p);
} else {
printf("INVALID PTR IN GetPointer2");
}
}
int* GetPointer3(void) {
int* p = malloc(sizeof(int));
if(p) {
*p = 9;
printf("IN GetPointer3: %d\n",*p);
} else {
printf("MALLOC FAILED IN GetPointer3\n");
}
return p;
}
int …Run Code Online (Sandbox Code Playgroud) c++ ×8
qt ×2
ansible ×1
c ×1
c++11 ×1
file-io ×1
gdb ×1
graph ×1
groovy ×1
jenkins ×1
jmespath ×1
json ×1
linux ×1
max-flow ×1
memory-leaks ×1
namespaces ×1
network-flow ×1
networking ×1
point-clouds ×1
pointers ×1
post ×1
rvalue ×1
signals ×1
sockets ×1
tbb ×1
ubuntu-10.04 ×1