gpt4 book ai didi

c++ - 在 C++ 中乘以用户定义的数组

转载 作者:行者123 更新时间:2023-11-30 01:13:54 24 4
gpt4 key购买 nike

<分区>

我有以下代码:

#include <iostream>
#include <array>

typedef std::array<int, 2> eval_t;
eval_t operator*(eval_t e1, eval_t e2) { return {e1[0] * e2[0], e1[1] * e2[1]}; }

int main()
{
eval_t a = {1, 2};
eval_t b = a * {2, 1};
std::cout << "b = (" << b[0] << ',' << b[1] << ')' << std::endl;
}

GCC 拒绝编译我的乘法:

$ g++ -std=c++11 test.cc 
test.cc: In function ‘int main()’:
test.cc:10:17: error: expected primary-expression before ‘{’ token
eval_t b = a * {2, 1};
^

我天真地希望唯一可能的 operator*() 将 eval_t 作为左操作数,将是我定义的那个,而右操作数将被理解为 eval_t.

相反,如果我写:

eval_t a = {1, 2};
eval_t v = {2, 1};
eval_t b = a * v;

有效。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com