OpenCL は、cl.hpp と呼ばれる、cl.h のヘッダーのみの C++ ラッパーを提供します。いくつかの実装が同梱されていますが、OpenCL ライブラリのみを使用するため、khronos.org から入手することもできます。
多くのテンプレートとインラインのものだけでなく、次のようなものも含まれています。
namespace cl
{
class Buffer : public Memory
{
Buffer (...stuff...)
{
// Constructor implementation
}
// ...
// Other Constructors and such
// ...
Buffer& operator= (const Buffer& rhs)
{
// implementation
}
// ...
Buffer createSubBuffer (...)
{
// implementation
}
}
}
ここで私の質問です。クラス定義にはあるが、インラインでもテンプレート化でもない実装は、1 つの定義規則に違反するべきではありませんか? ここで何を見逃したのですか?