小编Dan*_*atz的帖子

用模板元编程计数?

我一直试图想出一个创造性的解决方案来解决这个问题(开启和关闭)一段时间,但我还没有能够做到.我最近认为它可以通过模板元编程来解决,但由于我相对缺乏该技术的经验,我不确定.

是否可以使用模板元编程(或使用C++语言的任何其他机制)来计算从某个基类派生的类的数量,以便为每个派生类提供唯一的静态类标识符?

提前致谢!

c++ inheritance templates template-meta-programming

9
推荐指数
1
解决办法
1482
查看次数

是否可以声明属于模板类的单个实例化的函数?

我想到的应用程序类似于Vector<size>类,我希望在其中声明

CrossProduct(const Vector<size>& other)
Run Code Online (Sandbox Code Playgroud)

仅适用于尺寸为3的情况.我知道有很多方法可以解决它...

  • 仅包含size = 3的函数定义
  • 让所有其他大小产生链接器错误
  • 在方法的开头执行静态断言以检查大小是否为3

有没有办法正确地声明特定实例化的成员函数?

c++ templates

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

在施工完成之前,操作员可以获得新的返

在堆上构造对象在C++语言中看起来很简单.当代码

T* object = new T();
func(object);
Run Code Online (Sandbox Code Playgroud)

被调用,我的理解是必须首先分配内存,然后初始化,最后调用类的构造函数.此外,构造完成之前,对象的虚拟表不一定可用.

我的问题是:operator new在对象构造完成之前,可以返回指向已分配/初始化内存的指针,这样可以func(...)在一个未完全构造的对象上运行吗?这个问题的答案对我正在开发的多线程库有影响.

提前致谢.

c++ multithreading new-operator

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