#include <iostream> using namespace std; template<typename T1,typename T2> auto f(T1 v1[], T2 v2[], const size_t count)->decltype(v1[0]*v2[0]) { decltype(v1[0] * v2[0]) sum{}; for (size_t i{};i < count;i++) { sum += v1[i] * v2[i]; } return sum; } void decltypeDemo() { double x[]{ 100.5,99.5,88.7,77.8 }; short y[]{ 3,4,5,6 }; long z[]{ 11L,12L,13L,14L }; size_t n{ _countof(x) }; cout << "Result type is " << typeid(f(x, y, n)).name() << endl; cout << "Result is " << f(x, y, n) << endl; auto result = f(z, y, n); cout << "Result type is " << typeid(result).name() << endl; cout << "Result is " << result << endl; } int main() { decltypeDemo(); }
原文链接: https://www.cnblogs.com/Fred1987/p/16667828.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/401332
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!