Sobes.tech
Junior — Middle

Μπορείτε να δώσετε ένα παράδειγμα χρήσης της μερικής εξειδίκευσης προτύπων σε C++;

sobes.tech AI

Απάντηση από AI

Ο μερικός εξειδικευμός προτύπων σε C++ επιτρέπει τον ορισμό ενός προτύπου κλάσης ή συνάρτησης για συγκεκριμένους τύπους παραμέτρων, αφήνοντας τις άλλες παραμέτρους γενικές. Αυτό είναι χρήσιμο όταν θέλετε να αλλάξετε τη συμπεριφορά του προτύπου για ορισμένους τύπους χωρίς να ξαναγράψετε πλήρως όλες τις παραλλαγές.

Παράδειγμα μερικού εξειδικευμού ενός προτύπου κλάσης για δείκτες:

// Γενικό πρότυπο
template<typename T>
struct TypeInfo {
    static const char* name() { return "Άγνωστο"; }
};

// Μερικός εξειδικευμός για δείκτες
template<typename T>
struct TypeInfo<T*> {
    static const char* name() { return "Δείκτης"; }
};

// Χρήση
#include <iostream>

int main() {
    std::cout << TypeInfo<int>::name() << std::endl;    // Εκτυπώνει "Άγνωστο"
    std::cout << TypeInfo<int*>::name() << std::endl;   // Εκτυπώνει "Δείκτης"
}