OpenCL 为 cl.h 提供了一个只有头文件的 C++ 包装器,称为 cl.hpp。它附带了一些实现,但也可以从 khronos.org 获得,因为它只使用 OpenCL 库。
它包含很多模板和内联的东西,但也有这样的东西:
namespace cl
{
class Buffer : public Memory
{
Buffer (...stuff...)
{
// Constructor implementation
}
// ...
// Other Constructors and such
// ...
Buffer& operator= (const Buffer& rhs)
{
// implementation
}
// ...
Buffer createSubBuffer (...)
{
// implementation
}
}
}
现在这是我的问题:那些在类定义中但既不是内联也不是模板化的实现不应该违反单一定义规则吗?我在这里错过了什么?