本文整理汇总了C++中ProgramOptions::c_str方法的典型用法代码示例。如果您正苦于以下问题:C++ ProgramOptions::c_str方法的具体用法?C++ ProgramOptions::c_str怎么用?C++ ProgramOptions::c_str使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProgramOptions
的用法示例。
在下文中一共展示了ProgramOptions::c_str方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: create
bool CLProgram::create(const std::string& path, const ProgramOptions& compilerOptions, const std::vector<CLDevice>& devices /*= std::vector<CLDevice>()*/)
{
std::ifstream file(path);
if(file.fail())
{
std::cout << "Could not open file " << path << std::endl;
return false;
}
std::vector<std::string> lines;
while(!file.fail())
{
std::string line;
std::getline(file, line);
lines.push_back(line + "\n");
}
std::vector<const char*> linesChar;
for(size_t idx = 0; idx < lines.size(); ++idx)
{
linesChar.push_back(lines[idx].c_str());
}
_program = ::clCreateProgramWithSource(OpenCL::get_context(), linesChar.size(), &linesChar[0], NULL, &_lastError);
if(_lastError != CL_SUCCESS)
{
std::cout << "::clCreateProgramWithSource error." << std::endl;
}
if(_program == NULL)
return false;
_context = OpenCL::get_context();
std::vector<cl_device_id> deviceIDs;
std::for_each(devices.begin(), devices.end(), [&deviceIDs](const CLDevice& device) {
deviceIDs.push_back(device.device);
});
if(deviceIDs.empty())
_lastError = ::clBuildProgram(_program, 0, NULL, compilerOptions.c_str(), NULL, NULL);
else
_lastError = ::clBuildProgram(_program, deviceIDs.size(), &deviceIDs[0], compilerOptions.c_str(), NULL, NULL);
if(_lastError != CL_SUCCESS)
{
std::cout << "::clBuildProgram error." << std::endl;
}
return _lastError == CL_SUCCESS;
}