Nontype template parameter

#include <iostream>
#include <cstring>

using namespace std;

template<unsigned M, unsigned N>
int compare(const char (&lhs)[M], const char (&rhs)[N])
{
    return strcmp(lhs, rhs);
}

int main(int argc, const char *argv[])
{
    const char a[] = "hello";
    const char b[] = "helle";
    int res = compare(a, b);

    cout << "a is "
         << (res < 0 ? "less" : 
             res == 0 ? "equal" : "bigger")
         << " than b" << endl;
    return 0;
}


你可能感兴趣的:(Nontype template parameter)