- #include <iostream>
- #include <string>
- using namespace std;
- string (&fun(string (&s)[10]))[10]
- {
- return s;
- }
- //using str_arr = string (&)[10];
- typedef string(&str_arr)[10];
- str_arr fun1(str_arr s) {
- return s;
- }
- auto fun2(string (&s)[10]) -> string (&)[10]
- {
- return s;
- }
- string d[10];
- decltype(d) &fun3(decltype(d) &s)
- {
- return s;
- }
- int main(int argc, char *argv[])
- {
- string s[10] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "1"};
- //decltype(s) &ds = fun(s);
- //decltype(s) &ds = fun1(s);
- //decltype(s) &ds = fun2(s);
- decltype(s) &ds = fun3(s);
- ds[1] = "han";
- for (const auto &a : s)
- {
- cout << a << endl;
- }
- cout << endl;
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/090720149945.html
来源: http://www.codesnippet.cn/detail/090720149945.html