2014-01-08 3 views
2

Я только начал изучать OpenCL со следующим учебник: http://simpleopencl.blogspot.hu/2013/06/tutorial-simple-start-with-opencl-and-c.htmlOpenCL неоднозначный контекст конструктор

У меня есть проблемы со следующим кодом:

cl::Device defaultDevice = allDevices[0]; 
cl::Context context({defaultDevice}); 

Компилятор говорит: enter image description here

Я думаю, что компилятор не может выбрать между 2-м и 3-м кандидатами, но я не знаю, как заставить компилятор выбрать второй.

Я использую Qt Creator для Windows 7 и AMD SDK.

ответ

2

Не используйте брекеты. Just:

cl::Device defaultDevice = allDevices[0]; 
cl::Context context(defaultDevice); 
+0

Спасибо, это работает. Не могли бы вы объяснить, почему мне не нужны брекеты? – otisonoza

+1

скобки дают вам список инициализаторов (в этом случае используется для инициализации 'std :: vector '). конструктор, который вы хотите вызвать, принимает только одно «cl :: Device», и в этом случае вам не нужен вектор из них, поэтому вы не должны создавать его с помощью фигурных скобок. –

Смежные вопросы