이 TYPE이라는 클래스 열거 형인 경우를 제외하고는 아래 코드에서 Foo<T>::setValue이 내 용도로 적합합니다. Bar::TYPE 및 Baz:TYPE. 같은 클래스의 수십있을 수 있기 때문에 따라서, 나는 Bar 및 Baz 이름을 지정하지 않고 Foo<T>::setValue을 전문으로 도움을 주셔서 감사합니다 것입니다. class Bar
{
이 문제는 설명하기가 좀 어렵다, 그래서 예를 들어 시작할 것이다 : 나는 유형과 템플릿 매개 변수로 정수 상수를 취하는 클래스 템플릿을 하고, 나는 그 템플릿의 인스턴스화에서 파생 자식 클래스의 수 있습니다 template <class V, int i>
struct Base
{
static void doSomething() { cout <<
템플릿을 사용하고 여러 추상 데이터 유형 (ADT)을 저장할 수있는 "저장소"(웨어 하우스, 원하는대로 호출)가 있습니다. Rep.h template <typename TAD>
class Repository {
public:
DynamicArray <TAD *> tad; // made a dynamic array myself, also
template <typename T>
void foo(T t)
{
... // do stuff with type T
}
template <typename T>
class class_template
{
// class body
};
template<> // failed attempt at full speciali
나는 명확한 답을 찾고 있었고, 웹에서 약간의 부분을 잡아 냈습니다. 나는 함수를 가지고 있으며, 변수에 따라 다르게 행동해야한다. 함수는 인수를 취하지 않으므로 오버로드가 작동하지 않아 템플릿 전문화가 이루어집니다. 예 : //Calls to this function would work like this:
int a = f();
int b = f<in
, 어떻게 깨끗하게 기본 인수를 전문으로 할 수 있습니까? 예를 들어, 다음 사항을 고려 template <class Key, class Value = int > class Association;
내가 Value 대신 클래스 Special에 대한 float로 기본 설정하려면? 의 효과에 방법이 키 Special 인 경우 값은 기본값 대신 float 될
템플릿 변수에 따라 직렬화 코드 (true) 또는 아무 것도 (false) 수행되는 변수 직렬화를위한 인터페이스를 정의하려고합니다. 직렬화 함수 자체는 아카이브 및 변수 유형에 템플리트 화됩니다. 직렬화 함수를 부분적으로 특수화하는 것이 더 좋습니까? 내부에 정적 메서드를 사용하여 클래스를 특수화하는 것이 더 좋습니까? 아래의 코드가 정확합니까? 더 좋은
MSVC 2010를 사용하여, 나는 다음과 같은 동작을 얻을 : 분명히 template <class T> class Boogy
{
public:
void Fn(T in)
{
}
void Fn2(const T& in)
{
}
};
template <> void Boogy<int>::Fn(int
2D 및 3D 모두에서 작동해야하는 시뮬레이션을 프로그래밍하고 있습니다. 이제 표면을 수정해야하는 객체가 있습니다. 3D에서 표면은 2 차원 배열이고 2D는 1 차원입니다. 템플릿 매개 변수를 사용하여 내가 사용하는 차원 공간을 나타냅니다. 그러나 내가 배열의 유형을 전문화 할 때 나는 지정된 클래스에서 예상되기 때문에 수정 함수를 전문화 할 수 없다. 그
구현할 필요가있는 알고리즘에 맞게 매우 적합한 행렬 클래스가 있습니다. 나는 에이 겐 (Eigen)에 대해 알고 있지만 그것은 내 계산서에 맞지 않아서 내 자신을해야했다. 나는 Column Major ordering과 함께 일해 왔고 이제 Row Major를 사용하는 강력한 유스 케이스가있다. 그래서 템플릿 템플릿 클래스를 주문 템플릿을 정의하는 특별한 템