class Foo {
public:
Foo() { do_something = &Foo::func_x; }
int (Foo::*do_something)(int); // function pointer to class member function
void setFunc(bool e) { do_something = e ? &Foo::func_x : &Foo::func_y; }
private:
int func_x(int m) { return m *= 5; }
int func_y(int n) { return n *= 6; }
};
int
main()
{
Foo f;
f.setFunc(false);
return (f.*do_something)(5); // <- Not ok. Compile error.
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它发挥作用?
如何在磁盘上的文件中存储具有单独链接的哈希表?
在运行时生成存储在哈希表中的数据是昂贵的,从磁盘加载HT会更快......如果我能弄清楚如何做到这一点.
编辑:查找是在内存中加载的HT完成的.我需要找到一种方法将哈希表(在内存中)以某种二进制格式存储到文件中.因此,下次程序运行时,它可以将HT磁盘加载到RAM中.
我正在使用C++.
似乎除了Opera之外的所有浏览器都在我的Javascript程序中缓存XHR请求.XHR请求中的URL是指服务器上的CGI程序,每次调用它时都会生成不同的输出.B Javascript中是否有一种方法可以使浏览器不缓存XHR请求?
QTextEdit t; t.setHtml(" ");显示带有尖锐重音的小“a”而不是不间断空格。这只发生在 Windows 上,而不是 Linux 或 FreeBSD。这可能是什么原因造成的?Windows/Qt 中的错误?我怎样才能解决这个问题?
(Windows Vista x64 pro 上的 Qt 4.5。我的语言环境是默认的“C”。)
更新:我有一种感觉,这是 Qt/Windows 中的错误(已经提交了错误报告)。我已经创建了一个解决方法,但它很丑陋,并且涉及更改我的格式算法并使用<pre> </pre>CSS 来生成所需的输出。
有没有更简单的解决方法?
更新:&8194; 和 &8195; 两者都按照'wcm'的建议工作。假设这也适用于其他用户是否安全?
不工作可能仍然是一个错误,但是 &8194; 似乎是一种可以接受的解决方法(?)。
更新:结果我错过了一些重要的事情: 在 Qt/Windows 中,仅使用我正在使用的名为“终端”的特定单字字体呈现错误。当我切换到“Lucida Console”(或任何其他字体)时, 渲染正确!伙计,我希望我早点注意到这一点!该死。所以显然某处有一个错误(很可能在 Qt 中)。但是没关系,至少对我来说使用不同的字体已经解决了这个问题。
更新:这不是我之前认为的 Qt 中的错误。要了解 错误呈现的原因,请参阅 Tewha 的回答。
[解决了]