Array decay to pointers in templates

后端 未结 4 1744
感情败类
感情败类 2020-12-09 23:32

Please consider this code:

#include 

template
void f(T x) {
    std::cout << sizeof(T) << \'\\n\';
}

int main         


        
4条回答
  •  天命终不由人
    2020-12-10 00:10

    Depending on your use case, you can work around that using references:

    template
    void f(const T& x) {
        std::cout << sizeof(T);
    }
    
    char a[27];
    f(a);
    

    That prints 27, as desired.

提交回复
热议问题