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 つの定義規則に違反するべきではありませんか? ここで何を見逃したのですか?