小编Phi*_*tte的帖子

快速动态铸造进度

不久之前,我发现了一篇非常有趣的论文,关于C++中dynamic_cast的非常整洁的性能升级:http://www2.research.att.com/~bs/fast_dynamic_casting.pdf.

基本上,它使得C++中的dynamic_cast比继承树中的传统研究更快.如该论文所述,该方法提供了快速,恒定时间的动态铸造算法.

本文发表于2005年.现在,我想知道这项技术是否曾在某处实施过,或者是否有计划在任何地方实施?

c++ performance dynamic-cast

8
推荐指数
1
解决办法
973
查看次数

为什么std :: uniform_int_distribution <IntType> :: operator()不是const?

据我了解,分配用于拉随机数时不应更改。例如,对于均匀分布,当我们使用它生成随机数时,其最小值/最大值不应更改,那么为什么operator()不是const?

c++ random const c++-standard-library

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

具有多个模板参数错误的模板部分特化

当我在具有一个模板参数的类上使用模板部分特化时,我可以专门化这样的方法:

#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

5
推荐指数
2
解决办法
5634
查看次数