저는 C++ 템플릿의 초보자입니다. 템플릿을 사용하여 계승을 계산하고 아래 코드를 첨부하려고합니다. if (t == 0) 섹션을 템플릿 전문화를 사용하여 바꾸고 싶지만 지금까지는 그렇게 할 수 없습니다. 당신의 전문은 잘못, 사용법 #include template <class T>
class Factorial
{
public:
나는 두 개의 분리 된 subentities 절약-계정 및 검사-계정와 관계-A 인 이있는 계정 개체가 있습니다. 그러나 고객 엔티티가 예금주계정 엔티티 (아래 ER 다이어그램과 같은 사용 예)와 관계가 있습니다. 고객 (CID, CNAME) 예금자 (CID, 계좌 번호) : 그러므로 나는이 같은 테이블에 ER 번역 저축 계좌 (계좌 번호, 균형, 금리)
클래스 템플릿 인수에 따라 형식이 다른 멤버가있는 템플릿 클래스가 있습니다. 클래스에는 템플릿 생성자가 있습니다. 어떻게하면 해당 멤버의 유형을 결정하는 클래스의 템플릿 인수의 여러 경우에 대해 생성자를 전문화 할 수 있습니까? 문제의 다른 유형은 생성자 서명이 다른 클래스이며, 이니셜 라이저 목록에서 멤버의 생성자를 호출하고 싶습니다. 해결 방법이 있습니
일반 프로토콜을 전문으로하는 프로토콜을 사용할 수 있습니까? 나는 이런 식으로 뭔가 싶어 : protocol Protocol: RawRepresentable {
typealias RawValue = Int
...
}
이 컴파일 않습니다,하지만 나는 프로토콜 인스턴스에서 init 또는 rawValue에 액세스하려고 할 때, 그 유형은
구조화 된 바인딩 지원을 추가하려는 클래스가 있습니다. 그러나 템플릿 기반 클래스로 std::tuple_element과 std::tuple_size을 어떻게 전문화해야하는지 알 수 없습니다. template<typename... Cmps>
struct CmpGroup
{
std::array<void*, sizeof...(Cmps)> cmps;
문제는 스케일 필드와 3D 벡터 필드의 그라디언트를 계산하려는 컴퓨터 그래픽 C++ 프로젝트에서 기인합니다. 우리는 그것들의 그래디언트가 다르다는 것을 알고 있습니다 : 스케일 필드는 3D 벡터 그라디언트를 가지고 3D 벡터 필드는 3x3 매트릭스 그라데이션을 가지고 있습니다. 다른 모든 코드는 동일하므로 코드를 다시 사용하기 위해 템플릿을 사용하고 있습니
템플릿 함수의 특수화를 작성하고 싶습니다. 특수화 된 유형은 템플릿 형식입니다. (필자는 C++ 11 이상을 사용하고 있습니다.) 를 아래 예제 코드에서, 나는 (그림 참조) 나 convertTo<int>(s)을 사용할 수 있도록 int의 일반적인 기능 convertTo 및 작동 전문성을 가지고있다. 하지만 전문화 방법을 알아낼 수는 없습니다 (예 : st
나는 녹 이에 대해 implementing tuple flattening입니다. 그것은 내가 전문화를 사용하여 시도 Cons[
Cons[A, B, Nil],
Cons[
C, Cons[D, E, Nil], Nil
],
F,
Nil
]
에 ((A,B), (C, (D, E)), F)
변환이 필요하지
비 타입 템플릿 매개 변수와 함께 템플릿 클래스에 함수 템플릿을 전문 : 나는 이제 함수 템플릿 validateType() template <class T>
bool validateType() {
return false;
}
이 template <class A, A value, class B>
class Foo {};
및 I Foo를
내가 템플릿 특수화의 주위에 내 머리를 정리하려고 이해하지, 나는 조금 혼란 스러워요 ( 예 1 (아마도 무엇인가 실제로 유형 이름, 또는 컴파일러가 무엇을 기대하고 이해되지 않음) 컴파일) template <typename A, typename... Args>
class Example
{
public:
Example(){}
virt