小编Jam*_*ieC的帖子

C++中成员函数的函数指针

我需要调用一个需要函数指针的方法,但我真正想传递给它的是一个仿函数.这是我正在尝试做的一个例子:

#include <iostream>
#include "boost/function.hpp"

typedef int (*myAdder)(int);

int adderFunction(int y) { return(2 + y); }

class adderClass {
  public:
    adderClass(int x) : _x(x) {}  
    int operator() (int y) { return(_x + y); }

  private:
    int _x;
};

void printer(myAdder h, int y) {
  std::cout << h(y) << std::endl;
}

int main() {
  myAdder f = adderFunction;

  adderClass *ac = new adderClass(2);
  boost::function1<int, int> g =
    std::bind1st(std::mem_fun(&adderClass::operator()), ac);

  std::cout << f(1) << std::endl;
  std::cout << g(2) << std::endl;
  printer(f, 3); …
Run Code Online (Sandbox Code Playgroud)

c++ member-function-pointers function-pointers functor

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

我希望XML :: Twig能够准确打印解析的内容

我有包含'的XML.对于'等等.当我使用XML :: Twig解析它然后再次打印出来时,所有的' 打印为'.此外,XML :: Twig似乎重新排序属性以按字母顺序排列.从XML的角度来看,这些是等价的,但是,我想对XML进行一小组更改并使用diff来确认所做的唯一更改是我想要的.有没有办法让XML :: Twig除了我明确改变之外什么都不改变?

这是我的XML:

<?xml version="1.0" encoding="utf-8"?>
<System>
  <P C="C" B="B" A="A">&apos;&lt;&gt;&quot;&amp;</P>
  <P A="A" B="B" C="C">'&lt;>"&amp;</P>
</System>
Run Code Online (Sandbox Code Playgroud)

和perl:

my $twig = new XML::Twig(KeepSpaces => 'true');
$twig->parsefile("test.xml");
$twig->print();
Run Code Online (Sandbox Code Playgroud)

以下是打印的内容:

<?xml version="1.0" encoding="utf-8"?>
<System>
  <P A="A" B="B" C="C">'&lt;>"&amp;</P>
  <P A="A" B="B" C="C">'&lt;>"&amp;</P>
</System>
Run Code Online (Sandbox Code Playgroud)

xml perl xml-twig

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

在Perl中使用Moose来实现一个仿函数

我正在使用Perl中的一些代码,它希望我将方法传递给它.但是,我想保留一些关于方法中发生的事情的状态.我知道我可以使用全局变量,但我更喜欢一些更清洁/面向对象的东西.有没有办法使用Moose创建一个仿函数/函数对象?

perl moose functor

0
推荐指数
1
解决办法
192
查看次数