c++ - Friends & Pointers -


i have following code:

(*writeoutputtobuffer)(cl::enqueueargs(*queue, cl::nullrange, cl::ndrange(netspec[lastlayerindex]), cl::nullrange), writeoutputtobufferbuf[0], writeoutputtobufferbuf[1], lastlayerindex); 

where writeoutputtobufferbuf[0] contains cl::buffer,

writeoutputtobufferbuf[1] contains cl::buffer

and lastlayerindex contains int.

writeoutputtobufferbuf vector of cl::buffer

using above code in own class works fine. call successful this:

(cl::make_kernel< cl::buffer, cl::buffer, int >) (cl::enqueueargs, cl::buffer&, cl::buffer&, int&)

the kernel initialized as:

 std::shared_ptr<cl::make_kernel<cl::buffer, cl::buffer, int>> writeoutputtobuffer; 

but when use them in friend class follows:

(fullyconnectedportion->writeoutputtobuffer)(cl::enqueueargs(*queue, cl::nullrange,                         cl::ndrange(outputsize), cl::nullrange),  (fullyconnectedportion->writeoutputtobufferbuf[0]),                             (fullyconnectedportion->writeoutputtobufferbuf[1]), (fullyconnectedportion->lastlayerindex)); 

it returns error:

no match call ‘(std::shared_ptr < cl::make_kernel< cl::buffer, cl::buffer, int > >) (cl::enqueueargs, cl::buffer&, cl::buffer&, int&)’

how fix issue?


i tried make more detailed example below, hope helps. actual lines of codes long post here , needs opencl compile. think supposed issue use of pointers though.

class fcn{ public:      std::vector<cl::buffer> writeoutputtobufferbuf;     friend class neuralnetwork;      void initialize();  private:     std::shared_ptr<cl::make_kernel<cl::buffer, cl::buffer, int>> writeoutputtobuffer; }  class nn{ public:     fcn* fcnn;      void calc(); }  void fcn::initialize(){ //puts data writeoutputtobufferbuf }  void nn::calc(){   (fullyconnectedportion->writeoutputtobuffer)(cl::enqueueargs(*queue, cl::nullrange,                         cl::ndrange(outputsize), cl::nullrange),  (fullyconnectedportion->writeoutputtobufferbuf[0]),                             (fullyconnectedportion->writeoutputtobufferbuf[1]), (fullyconnectedportion->lastlayerindex));  }  int main(){   nn *nnnet = new nn;  fcn *fcnet = new fcn;   (*fcn).initialize();  (*nn).calc(); } 


Comments

Popular posts from this blog

Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project.Error occurred in starting fork -

windows - Debug iNetMgr.exe unhandle exception System.Management.Automation.CmdletInvocationException -

configurationsection - activeMq-5.13.3 setup configurations for wildfly 10.0.0 -