gpt4 book ai didi

c++ - constexpr 类中的引用字段

转载 作者:行者123 更新时间:2023-11-28 04:10:16 24 4
gpt4 key购买 nike

<分区>

编辑:我能够完全减少这个问题,感谢您的反馈。

现在,我正在研究 vector 类( vector 是数学术语)。此类具有维度和元素类型的模板。我需要定义引用字段:X、Y,语法必须不需要调用括号(v.X() - 不正确的解决方案)。我对此的实现:

#include <array>

template <typename Ty, size_t Size>
struct vector {
std::array<Ty, Size> data;
Ty& x{ this->data[0] };
Ty& y{ this->data[1] };
};

constexpr vector<int, 2> const_context() {
vector<int, 2> v1{ 1,2 };
v1.data[0] = 1;
return v1;
}

int main() {
constexpr auto res = const_context();
}

如果我们注释 x 和 y 字段编译它是成功的。

我的工具:Visual Studio 2017 和 C++ 17。解决方案必须是可移植的,并且不依赖于编译器。

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