c ++只使用#include部分代码/作用域#include / stop #include

时间:2014-08-13 21:51:09

标签: c++ scope include

假设我想编写一组看起来非常相似但执行不同任务的静态方法。不是两次写入类似的函数,而是编写一个并将内容复制并粘贴到另一个中更容易。

问题是这些方法为其功能使用不同的头文件。一个这样的函数对可能如下所示:

__global__  void D_sin(double* result, double x) {result[0]=sin(x);}
/*MACHINE*/ void H_sin(double* result, double x) {result[0]=sin(x);}

第一个应使用#include "device_functions.h",第二个应使用#include <cmath>。例如,NVCC实际上可能足够聪明,可以正确解析__global____device__函数,但我仍然对一般解决方案感兴趣。

我想将这些方法保存在同一个文件中,因为编辑多个文件会非常快速地混淆。

所以问题是,我该怎么做:

namespace a{
  #include "someheader.h"

  void a(double* a) {...;}
  void b(double* a, double x) {...;}
  void c(double* a, double x) {...;}
  void d(double* a, double* b, double x) {...;}

  #stopinclude "someheader.h"
}

namespace b{
  #include "anotherheader.h"

  void a(double* a) {...;}
  void b(double* a, double x) {...;}
  void c(double* a, double x) {...;}
  void d(double* a, double* b, double x) {...;}

  #stopinclude "anotherheader.h"
}

我最初的做法是

namespace someh {
   #include "someheader.h"
}
...
someh::...
{

  using namespace someh;
}

但我无法获得一致的结果。

0 个答案:

没有答案