Ошибка библиотеки усилителя

Я пытаюсь начать использовать библиотеку усилителей C++. Я следую этому руководству MSDN Magazine, но получаю сообщение об ошибке для этой части кода, которая есть в amplibrary(не мой код).

 protected:
    _Accelerator_view_impl_ptr _M_accelerator_view;
    _Accelerator_view_impl_ptr _M_access_on_accelerator_view;
    void * _M_data_ptr;
    void * _M_host_ptr;
    size_t _M_elem_size;
    size_t _M_num_elems;
    bool   _M_owns_data;
    bool   _M_is_staging;

ошибка

3 IntelliSense: недопустимый тип параметра "void *" для функции с ограничением усиления "Concurrency::details::_Texture_descriptor::_Texture_descriptor(Concurrency::details::_Texture *_Texture_ptr) restrict(процессор, усилитель)" (объявлено в строке 538 из "c:\program files (x86)\microsoft visual studio 11.0\vc\include\amprt.h") c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\amprt.h 1466 16

код, который я скопировал до сих пор

#include <amp.h>                // C++ AMP header file
#include <iostream>             // For std::cout etc
using namespace concurrency;    // Save some typing :)
using std::vector;     // Ditto. Comes from <vector> brought in by amp.h

int main()
{
    do_it();

    std::cout << "Hit any key to exit..." << std::endl;
    std::cin.get();
}

void do_it()
{
    // Rows and columns for matrix
    const int M = 1024;
    const int N = 1024;

    // Create storage for a matrix of above size
    vector<int> vA(M * N);
    vector<int> vB(M * N);

    // Populate matrix objects
    int i = 0;
    std::generate(vA.begin(), vA.end(), [&i](){return i++;});
    std::generate(vB.begin(), vB.end(), [&i](){return i--;});

    // Output storage for matrix calculation
    vector<int> vC(M * N);

    perform_calculation(vA, vB, vC, M, N);
}

void perform_calculation(
    vector<int>& vA, vector<int>& vB, vector<int>& vC, int M, int N)
{
    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
            vC[i * N + j] = vA[i * N + j] + vB[i * N + j];
        }
    }
}

СТРОИТЬ ВЫХОД

------ Build started: Project: Project1, Configuration: Debug Win32------  
Source.cpp 
LINK : padding exhausted: performing full link  
Project1.vcxproj ->C:\Development\Project1\Debug\Project1.exe 
CodeContracts:
Project1: Run static contract analysis. 
CodeContracts: Project1:  Cannot load assembly 'C:\Development\Project1\Project1\Debub\Decl\Project1.exe'
CodeContracts: Project1: Total methods analyzed 0  
CodeContracts:Project1: Total time 135ms. 0ms/method  
CodeContracts: Checked 0 assertions.  
CodeContracts: Project1: Static contract analysis done. 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

1 ответ

Интеллектуальная ошибка - безвредная известная проблема VS 11 Beta. Вы можете смело игнорировать это. В окне ошибок вы также можете фильтровать, чтобы показать ошибки только для ваших открытых файлов, и таким образом вы бы отфильтровали это, если предпочитаете не видеть их. Но это не мешает вам строить и работать, так что просто игнорируйте.

Что касается любых других проблем, которые вы обнаружите с кодом, пожалуйста, перейдите по ссылке в статье журнала MSDN для кода, а затем вы можете либо использовать это, или использовать его, чтобы сравнить то, что вы печатаете, с тем, что я предоставил со статьей.

ура

Даниил

Другие вопросы по тегам