Tag: specialization
Ein leistungsfähiges Merkmal von C++ – templates ist `template-Spezialisierung. Dies ermöglicht alternative Implementierungen zur Verfügung gestellt werden, basierend auf bestimmten Eigenschaften der parametrisierten Typ wird instanziiert. Template Spezialisierung hat zwei Zwecke: um bestimmte Formen der Optimierung und code zu reduzieren aufblasen.
2
Antworten
Habe ich eine template-Funktion: template<typename T> void foo(const T& value) { bar(value); x = -1; } Ich spezialisieren will, ist es für eine Reihe von Typen: template<> void foo<char>(const char& value) { bar(value); x = 0; }
2
Antworten
Ich spezialisieren will, folgende member-Funktion: class foo { template<typename T> T get() const; }; Anderen Klasse bar das hängt davon ab, Vorlagen sowie. Zum Beispiel, ich möchte bar zu std::pair mit einigen template-Parameter, sowas wie das: template<>
3
Antworten
Hallo! Ich sich spezialisieren möchten nur eines der beiden template-Typen. E. g. template <typename A, typename B> class X sollte eine spezielle Umsetzung für eine einzelne Funktion X<float, sometype>::someFunc(). Beispielcode: main.h: #include <iostream> template <typename F, typename
5
Antworten
Mein vollständiger code ist zu lang, aber hier ist ein snippet, dass spiegeln die Essenz der mein problem: class BPCFGParser { public: ... ... class Edge { ... ... }; class ActiveEquivClass { ... ... }; class
6
Antworten
Ich habe eine Vorlagen-Klasse A<T, int> und zwei typedefs Ein<string, 20> und Eine<string, 30>. Wie kann ich das überschreiben der Konstruktor für Eine<string, 20> ? Der folgende Code funktioniert nicht: template <typename T, int M> class A;
2
Antworten
Ist es möglich, sich zu spezialisieren, insbesondere die Mitglieder der template-Klasse? So etwas wie: template <typename T,bool B> struct X { void Specialized(); }; template <typename T> void X<T,true>::Specialized() { ... } template <typename T> void X<T,false>::Specialized()
6
Antworten
noob hier noch am Experimentieren mit Vorlagen. Beim schreiben einer Nachricht, die Verarbeitung Klasse Vorlage template <typename T> class MessageProcessor { //constructor, destructor defined //Code using t_ and other functions foo( void ) { //More code in
3
Antworten
Ich brauche, um sich zu spezialisieren, ein Funktions-template in c++. template<typename T> void doStuff<T>() {} Zu template<> void doStuff<DefinedClass>(); und template<> void doStuff<DefinedClass2>(); Ich denke, das ist nicht die richtige syntax (da es nicht kompilieren). Wie sollte
5
Antworten
Ich bin versucht zu ermitteln, welche version einer member-Funktion aufgerufen wird, basiert auf dem class-template-parameter. Ich habe dies ausprobiert: #include <iostream> #include <type_traits> template<typename T> struct Point { void MyFunction(typename std::enable_if<std::is_same<T, int>::value, T >::type* = 0) {
3
Antworten
class A { }; template <typename A, int S> class B { public: static int a[S]; B() { a[0] = 0; } }; template<> int B<A, 1>::a[1]; int main() { B<A, 1> t; t; } Kompiliert unter
4
Antworten
Immer unter Berücksichtigung, dass der folgende header, mit meiner einer Vorlage gebildete Klasse enthalten ist, die in mindestens zwei .CPP Dateien, die in diesem code richtig kompiliert: template <class T> class TClass { public: void doSomething(std::vector<T> *
4
Antworten
Möchte ich diese spezielle w/o ändern der main. Ist es möglich sich zu spezialisieren, etwas, was sich auf Ihrer Basis-Klasse? Ich hoffe, dass so. -Bearbeiten- Werde ich habe mehrere Klassen, die Erben von SomeTag. Ich will nicht
2
Antworten
Ich brauche, um sich zu spezialisieren Vorlage-Memberfunktion für einige Typ (sagen wir mal Doppel -). Es funktioniert gut, während die Klasse X selbst ist keine template-Klasse, aber wenn ich es Vorlage GCC beginnt, geben compile-Zeit-Fehler. #include <iostream>