홈>
template<int a>
class A {};
operator A<0>::bool() {
return true;
}
// Goal:
bool b1 = A<0>(); // Allow
//bool b2 = A<1>(); // Error
CLion은 두 번째
A
에서 "예상 유형"오류를 표시합니다
. GCC는
A<0>
에서 "예상 유형 지정자"오류를 표시합니다
.
typename
와 유사한 오류가 발생합니다.
int
대신 사용됩니다
. 일부 템플릿 전문화에 대한 전환을 정의하는 이유와 방법은 무엇입니까?
C ++ 20, CLion 2019.1.4, CMake 3.14.3, GCC 8.3.0, 데비안 8.3.0-6
- 답변 # 1
관련 자료
- c++ - std - : enable_if를 사용하여 템플리트 과부하가있는 내재적 변환 연산자 t ()가 컴파일에 실패 함
- visual studio - c ++ 다중 집합 오류 c2676 - 이진 '-': 'const _bidit'은이 연산자를 정의하지 않거나 사전 정의 된 연산자에 허용되는 유형으로의 변환을 정의하지 않습니다
- <<연산자의 템플릿 구현 // C ++
- C ++의 템플릿 클래스에 대한 연산자 ostream 오버로딩이 작동하지 않습니다
- c++ - 운영자에게 별명 정의
- C ++ 반복자에서 operator ==와 operator! =를 모두 정의해야합니까?
- javascript - 렌더링 기능을 사용할 때 Vuejs 템플릿에서 슬롯을 정의하는 방법은 무엇입니까?
- c++ - 오버로드 된 유형 변환 연산자 충돌이있는 함수 객체
- c++ - 변환 연산자 template T&&()가 의도적으로 rvalue로 변환 되었습니까?
- c++ - 별칭 및 템플릿 전문화 혼합
- c++ - 템플릿 클래스를 템플릿 매개 변수로 사용하여 템플릿 클래스에서 템플릿 함수를 올바르게 정의하는 방법
- angular - 값 변경을 위해 템플리트에서 비동기 파이프와 결합 할 때 파이프 연산자가 작동하지 않음
- clang - 중첩 된 열거 형에 대한 템플릿 매개 변수로 C ++ 친구 연산자 오버로딩
- c++ - 이항 연산자에 대해서만 암시 적 변환 연산자 방지
- jinja2 - Airflow의 연산자 매개 변수에서 jinja 템플릿을 INT로 형식 지정
- c++ - 템플릿 to_string <<연산자는 열거 형 클래스에 대해 작동하지 않습니다
- c++ - 템플릿 인수 추론을 사용하는 템플릿 함수 호출로 변환과 관련된 인수를 전달하는 것이 좋지 않습니까?
- c++ - 템플릿 클래스 외부에서 생성자를 어떻게 정의합니까?
- c++ - 템플릿 연산자를 만드는 동안 오류가 발생했습니다
- c++ - 삽입 연산자 함수 템플릿을 작성하는 방법은 무엇입니까?
해결책은 연산자 키워드를 이중 콜론 다음으로 이동하는 것입니다 :
A<0>:: operator bool()
,template<>
를 추가하십시오 정의하기 전에. 클래스는 일반 연산자 메소드로 선언해야합니다. Igor Tandetnik가 게시 한이 링크 덕분입니다.