在C++类中使用const引用字段作为只读getter是否合适?
我的意思是,这段代码是否符合良好做法?
class check{
private:
int _x;
public:
const int& x = _x;
void setX(int v){
_x = v;
}
};
Run Code Online (Sandbox Code Playgroud)
它非常像C#属性,恕我直言,并且在类使用代码中非常简单和干净:
check s;
int i;
std::cin >> i;
s.setX(i);
std::cout << s.x << '\n';
s.setX(7);
// s.x = i; // Error
std::cout<<s.x<<'\n';
Run Code Online (Sandbox Code Playgroud) 有一些target-feature
s 可以通过向-C target-feature=+sse,+avx
编译器添加参数来使用。可用功能可以使用 显示rustc --print target-features
。还有一些默认激活的功能,例如 AMDx64 目标上的 SSE。
如何查看默认激活了哪些功能?我在任何地方都找不到它,并且当我运行cargo build --release --verbose
.
C++ 有两个 STL 函数:std::lower_bound
和std::upper_bound
std::lower_bound
查找搜索值的第一个位置(如果存在),或者第一个值更大的位置。
std::upper_bound
找到比请求值更大的第一个位置。
该函数一起允许用户找到半开迭代器范围,其中包含等于搜索值的所有值。
在 Rust 中,我们只有带有binary_search
一些额外谓词的切片,但它可以返回值等于搜索到的任何位置。
我如何last value index + 1
在 C++ 中找到第一个值索引或类似内容?
我正在对广泛使用的开源库进行重构,并希望使其尽可能强大。
目前,如果支持的话,它会使用原子size_t
变量,但我想知道它是否会错过一些不起眼的平台,例如,32 位原子同时具有 64 位指针。
我不会new operator
像这里那样问。请仔细阅读问题。
我想知道为什么我们需要特殊函数make_unique
而不是 unique_ptr 的特殊构造函数。
unique_ptr
可以使用这样的构造函数来使make_unique
不必要的:
template<typename T, typename ...TArgs>
unique_ptr::unique_ptr(TArgs&&... args)
: inner_ptr(new T(std::forward(args)...))
{}
Run Code Online (Sandbox Code Playgroud) c++ ×3
rust ×3
atomic ×1
oop ×1
properties ×1
reference ×1
rust-cargo ×1
slice ×1
unique-ptr ×1
vector ×1