제한 (AMP C++)

제한 지정자 함수와 람다 선언에 적용할 수 있습니다.제한 함수에서 코드와 함수를 C++ 가속 대규모 병렬 (C++ AMP) 런타임을 사용 하는 응용 프로그램의 동작을 적용 합니다.

[!참고]

대 한 자세한 내용은 restrict 의 일부인 키워드는 __declspec 저장소 클래스 특성을 참조 하십시오 restrict.

restrict 절은 다음과 같은 형식:

설명

restrict(cpu)

함수는 전체 C++ 언어를 사용할 수 있습니다.Restrict(cpu) 함수를 사용 하 여 선언 된 다른 함수에만 함수를 호출할 수 있습니다.

restrict(amp)

함수가 C++ AMP를 가속화할 수 있는 C++ 언어의 하위 집합 에서만 사용할 수 있습니다.

A sequence of restrict(cpu) and restrict(amp).

함수가 둘의 한계를 준수 해야 합니다 restrict(cpu) 및 restrict(amp).함수를 사용 하 여 선언 된 함수를 호출할 수 restrict(cpu), restrict(amp), restrict(cpu, amp), 또는 restrict(amp, cpu).

폼 restrict(A) restrict(B) 로 쓸 수 있는 restrict(A,B).

설명

restrict 키워드는 컨텍스트 키워드입니다.제한 지정자 cpu 및 amp 예약어는 없습니다.지정자 목록을 확장할 수 없습니다.있지 않은 함수는 restrict 절은 동일한가 포함 된 함수는 restrict(cpu) 절.

포함 된 함수를 restrict(amp) 절이 다음과 같은 제한 사항이:

  • 함수가 있는 함수만 호출할 수 있는 restrict(amp) 절.

  • 함수 인라이닝 이어야 합니다.

  • 함수를 선언할 수 있습니다만 int, unsigned int, float, 및 double 변수 및 클래스 및 이러한 형식만 포함 된 구조체입니다.bool또한 사용할 수 있지만 복합 형식에서 사용 하는 경우 4 바이트 맞춤 이어야 합니다.

  • 람다 함수 참조로 캡처할 수 없습니다 및 포인터를 캡처할 수 없습니다.

  • 단일 간접 포인터 및 참조만 지역 변수로 함수 인수 지원 되며 형식을 반환 합니다.

  • 다음은 허용 되지 않습니다.

    • 재귀입니다.

    • 사용 하 여 선언한 변수는 휘발성 키워드입니다.

    • 가상 함수입니다.

    • 함수에 대 한 포인터입니다.

    • 멤버 함수에 대 한 포인터입니다.

    • 구조에 대 한 포인터입니다.

    • 포인터에 대 한 포인터입니다.

    • goto문입니다.

    • 레이블된 문입니다.

    • try, catch, or throw statements.

    • 전역 변수입니다.

    • 정적 변수입니다.대신 tile_static 키워드를 사용하십시오.

    • dynamic_cast비춥니다.

    • typeid 연산자입니다.

    • asm 선언 합니다.

    • Varargs입니다.

함수 제한에 대 한 자세한 내용은 restrict(amp) 제한.

예제

다음 예제에서는 사용 하는 방법을 보여 줍니다 있는 restrict(amp) 절.

void functionAmp() restrict(amp) {} 
void functionNonAmp() {} 

void callFunctions() restrict(amp) 
{ 
    // int is allowed.
    int x;
    // long long int is not allowed in an amp-restricted function. This generates a compiler error.
    // long long int y; 

    // Calling an amp-restricted function is allowed.
    functionAmp(); 

    // Calling a non-amp-restricted function is not allowed.
    // functionNonAmp(); 

}

참고 항목

기타 리소스

C++ AMP(C++ Accelerated Massive Parallelism)