不久之前,我发现了一篇非常有趣的论文,关于C++中dynamic_cast的非常整洁的性能升级:http://www2.research.att.com/~bs/fast_dynamic_casting.pdf.
基本上,它使得C++中的dynamic_cast比继承树中的传统研究更快.如该论文所述,该方法提供了快速,恒定时间的动态铸造算法.
本文发表于2005年.现在,我想知道这项技术是否曾在某处实施过,或者是否有计划在任何地方实施?
据我了解,分配用于拉随机数时不应更改。例如,对于均匀分布,当我们使用它生成随机数时,其最小值/最大值不应更改,那么为什么operator()不是const?
当我在具有一个模板参数的类上使用模板部分特化时,我可以专门化这样的方法:
#include <cstdlib>
template< std::size_t Dim >
class Test
{
public:
int foo();
};
template< std::size_t Dim >
inline int Test< Dim >::foo()
{
return 0;
}
template<>
inline int Test< 1 >::foo()
{
return 1;
}
int main()
{
Test< 2 > wTest2;
Test< 1 > wTest1;
wTest2.foo();
wTest1.foo();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
方法foo专门用于Dim = 1.但是只要我向我的类添加模板参数,就像这样:
#include <cstdlib>
template< typename T, std::size_t Dim >
class Test
{
public:
int foo();
};
template< typename T, std::size_t Dim >
inline int Test< …Run Code Online (Sandbox Code Playgroud) c++ templates compiler-errors metaprogramming partial-specialization