小编rec*_*ion的帖子

如何链接到Markdown中同一文档的一部分?

我正在编写一份大型Markdown文档,并希望在开头放置一个类别的目录,它将提供指向文档中各个位置的链接.我怎样才能做到这一点?

我试过用

[a link](# MyTitle)
Run Code Online (Sandbox Code Playgroud)

MyTitle文档中的标题在哪里,这不起作用.

markdown multimarkdown

441
推荐指数
11
解决办法
22万
查看次数

模板方法的未定义引用错误

这让我疯狂了一个半小时.我知道这是一件小事,但找不到什么是错的(事实上,这是一个下雨的星期五下午,当然,没有帮助).

我已经定义了以下类,它将保存从文件中读取的配置参数,并允许我从我的程序中访问它们:

class VAConfig {
    friend std::ostream& operator<<( std::ostream& lhs, const VAConfig& rhs);

private:
    VAConfig();
    static std::string      configFilename;
    static VAConfig*        pConfigInstance;
    static TiXmlDocument*   pXmlDoc;
    std::map<std::string, std::string> valueHash;

public:
    static VAConfig* getInstance();
    static void setConfigFileName( std::string& filename ) { configFilename = filename; }
    virtual ~VAConfig();

    void readParameterSet( std::string parameterGroupName );
    template<typename T> T readParameter( const std::string parameterName );
    template<typename T> T convert( const std::string& value );
};
Run Code Online (Sandbox Code Playgroud)

其中方法convert()定义VAConfig.cpp

template <typename T>
T VAConfig::convert( const std::string& value ) …
Run Code Online (Sandbox Code Playgroud)

c++ linker templates compilation

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

如何将std :: map作为默认构造函数参数传递

我无法弄清楚这一点.创建两个ctors很容易,但我想知道是否有一个简单的方法来做到这一点.

如何将a std::map作为默认参数传递给ctor,例如

Foo::Foo( int arg1, int arg2, const std::map<std::string, std::string> = VAL)
Run Code Online (Sandbox Code Playgroud)

我试过0,nullNULL作为VAL,没有工作,因为他们都是int类型,G ++抱怨的.这里使用的默认值是什么?

或者这种事情不是一个好主意?

c++ constructor stdmap default-value

13
推荐指数
3
解决办法
9852
查看次数

哪个日志库用于跨语言(Java,C++,Python)系统

我有一个系统,中央Java控制器启动分析过程,可以用C++,Java或Python(大多数是C++)编写.所有这些进程当前都在同一台服务器上运行.你有什么建议

  • 创建所有进程可以写入的中央日志
  • 如果将来我将一些进程推送到另一台服务器,该怎么办?我如何支持分布式日志记录?

谢谢!

c++ python java logging

11
推荐指数
2
解决办法
2047
查看次数

关于RAII,STL pop和PIMPL的基本问题

在今天阅读proggit时,我在一篇文章中发表了这篇评论,关于Google Ai挑战中的顶级位置是如何被C++采用的.用户reventlov声明

我在C++中遇到的最大问题是,如果没有真正理解使用C++可以理解的所有需要​​,那么你很容易认为自己是"C++程序员".

您必须了解RAII,并且知道使用命名空间,并了解正确的异常处理(例如,您应该能够解释为什么STL中的pop()方法不返回它们删除的值).您必须知道标准库中的三代函数中哪一个是正确的.您应该熟悉PIMPL等概念.您需要了解标准库(尤其是STL)的设计是如何工作的.您需要了解宏如何与命名空间交互,以及为什么通常不应该在C++中使用宏,以及应该使用什么(通常是模板或内联,很少是类).你需要了解提升.

我想我是他提到的那些无能的C++程序员之一.为了简短起见,我的问题是

  1. 您能举例说明典型的RAII监督错误,例如最佳实践规定使用RAII但程序员是否已采用其他方式实施?
  2. 为什么 STL中的pop()方法没有返回它们删除的值?
  3. 我阅读了PIMPL的维基百科条目,对此一无所知.您能举例说明PIMPL习惯用法的典型用法吗?

c++

9
推荐指数
2
解决办法
1244
查看次数

如何创建全局参数对象

这是一个常见的简单任务:从配置文件中读取配置设置,将设置(例如,作为哈希)保存在对象中,从需要访问配置参数的各种对象访问此对象.

我发现ConfigFile类实现的这个实现,它的工作原理.我的问题是:什么是从我的其他类中提供此类的实例并且是线程安全的最佳方法,避免静态初始化顺序惨败等.

我目前的方法是使用main()构建它

    // Read face detection related parameter values from the configuration file.
string configFileName = "detection_parameters.txt";
try {
    parameters = ConfigFile( configFileName );
}
catch(ConfigFile::file_not_found) {
    cerr << "configuration file not found: " << configFileName << endl;
    exit(-1);
}
Run Code Online (Sandbox Code Playgroud)

然后使参数成为全局变量.但我也读到应该使用单例而不是全局变量.如何使用文件名实例化单例?

这一定是一项普遍的任务,我认为必须有一个普遍接受的好方法吗?如果有人能指出我,我将不胜感激.

谢谢,C

c++ configuration global-variables

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

在这种情况下使用std :: vector的哪个构造函数

这看起来很简单,但我很困惑:我创建一个百矢量的方式,比方说,ints

std::vector<int>  *pVect = new std::vector<int>(100);
Run Code Online (Sandbox Code Playgroud)

但是,看看std :: vector的文档,我发现它的构造函数是形式的

explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() );
Run Code Online (Sandbox Code Playgroud)

那么,前一个如何运作?是否new使用从默认构造函数获取的初始化值调用构造函数?如果是这样的话,会的

std::vector<int, my_allocator> *pVect = new std::vector<int>(100, my_allocator);
Run Code Online (Sandbox Code Playgroud)

我通过自己的分配器,也工作?

c++ stl stdvector

7
推荐指数
2
解决办法
5406
查看次数

使用 Boost 在共享内存中创建循环缓冲区时出现问题

我正在尝试使用 Boost 和 Interprocess 库在共享内存中创建循环缓冲区circular_buffer我编译并运行了进程间文档中给出的示例,用于在共享内存中创建向量,没有任何问题。但是,当我修改它以使用 Boostcircular_buffer 时:

int main(int argc, char *argv[])
{
    managed_shared_memory segment(create_only, "MySharedMemory", 65536);
    const ShmemAllocator alloc_inst (segment.get_segment_manager());
    MyCircBuffer  *myCircBuf  = segment.construct<MyCircBuffer>("MyCircBuffer")(alloc_inst);
    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

我收到编译错误(由 引起segment.construct())。知道我做错了什么吗?是否是因为circular_buffer不是 中列出的容器之一/boost/interprocess/containers,即它与 Interprocess 不兼容?

谢谢,

C

c++ circular-buffer boost-interprocess

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

如何将相同的源策略应用于IP地址

我的公司内部网上有一台运行JBoss的服务器.我想从我的机器(也在Intranet上)向此服务器发送API调用,并使用JQuery获取生成的XML响应.

我阅读了维基百科上的条目,但我很困惑这是如何适用于我的情况,因为我们的机器只有IP地址,而不是域名.

我有

  • 服务器URL:10.2.200.3:800/serviceroot/service
  • 客户端IP地址:10.2.201.217

我的问题是:

  1. 据我所知,这些是不同的域名,对吧?所以我必须使用代理向服务器发出JQuery.ajax调用
  2. 如果我想避免做(2),我可以在服务器上安装Apache并在那里使用JS代码形式服务器页面吗?但是JS将从10.2.200.3开始,服务器将在10.2.200.3:8001.根据政策,这些被认为是不同的域名吗?

谢谢!

javascript jquery same-origin-policy

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

协议缓冲区多态

我有一个C ++程序,可以将各种事件(例如StatusEventDetectionEvent具有不同的原型消息定义)发送到消息服务(当前为Active MQ,通过activemq-cpp APU)。我想编写一个消息侦听器,以接收这些消息,解析它们并将它们写入cout,以进行调试。侦听器具有status_event_pb.hdetection_event_pb.h链接。

我的问题是:如何在不知道事件类型的情况下解析它?我想做类似的事情(用伪代码)

receive event
type = parseEventType(event);
if( type == events::StatusEventType) { 
    events::StatusEvent se = parseEvent(event);
    // do stuff with se
}
else {
    // handle the case when the event is a DetectionEvent
}
Run Code Online (Sandbox Code Playgroud)

我看了这个问题,但是不确定扩展是否是正确的选择。简短的代码片段将为您提供帮助。关于protobuf的例子非常罕见!

谢谢!


似乎扩展确实是可行的方法,但是我还有最后一点要解决。这是我到目前为止的原型定义:

// A general event, can be thought as base Event class for other event types.
message Event {
    required int64 task_id = 1;     
    required string module_name = 2;    // …
Run Code Online (Sandbox Code Playgroud)

c++ protocol-buffers

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