constants 相关问题

编程中的常量是定义,其值在整个程序的执行过程中是固定的。例如,大多数语言中的文字都是常量。在引用透明的编程样式中,所有定义都是常量。

将 boost intrusive_ptr 与不同 const-ness 进行比较

我想将 boost::intrusive_ptr 实例与基础类型的不同 const 性进行比较,但不幸的是,如果您取消注释该行,它就无法从框中工作: #包括 我想将 boost::intrusive_ptr 实例与基础类型的不同常量进行比较,但不幸的是,如果您取消注释该行,则它不起作用: #include <boost/intrusive_ptr.hpp> #include <memory> struct S {}; void intrusive_ptr_release(const S*){} int main() { boost::intrusive_ptr<const S> boost_const_ptr; boost::intrusive_ptr<S> boost_ptr; // if(boost_const_ptr < boost_ptr) {} // <------ here const S* s_const_ptr; S* s_ptr; if(s_const_ptr < s_ptr) {} std::unique_ptr<const S> u_const_ptr; std::unique_ptr<S> u_ptr; if(u_const_ptr < u_ptr) {} } 错误将是: no match for 'operator<' (operand types are 'boost::intrusive_ptr<const S>' and 'boost::intrusive_ptr<S>') 我可以比较原始指针,甚至可以比较 std::unique_ptr,但不能比较 boost::intrusive_ptr。这是有原因的,还是只是疏忽? 一个可能的原因是,与 shared_ptr < would be impossible in general. Other smart pointer types don't have to deal with the possibility of heterogenous comparison1 具有相同的语义,但 shared_ptr、weak_ptr 和 intrusive_ptr 可以。 template<class T, class U> bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b) noexcept; 退货: 未指定的值使得 operator< 是严格的弱排序,如 C++ 标准的 [lib.alg.sorting] 部分所述; 在operator<、!(a < b) && !(b < a)定义的等价关系下,两个shared_ptr实例是等价的当且仅当它们 共有所有权或两者都是空的。 shared_ptr 可以通过比较引用计数的地址来做到这一点。 intrusive_ptr 不能这样做,因为它没有对引用计数的指针访问。 例如当您将 shared_ptr<Base> 与 shared_ptr<Derived> 进行比较时,它们可能共享同一对象的所有权,这对于 unique_ptr<Base> 和 unique_ptr<Derived> 来说是不可能的。

回答 1 投票 0

为什么我们在C#中使用内部类作为常量?

我在很多项目中都见过它。为什么开发人员在C#中使用内部类来存储常量变量? 例如: 内部静态类常量 { 公共常量双 Pi = 3.14159...

回答 3 投票 0

Java 抽象类:强制子类定义常量

我有一个抽象类,我希望所有非抽象子类都根据实现定义一个常量 - 它主要是有关类实现的元数据。 在超类中: 保护...

回答 6 投票 0

为什么有时只允许使用 const int 作为数组大小?

这可以工作: 常量 int 大小 = 2; int 数组[大小] = {0}; 这有编译错误: 整数a=2; const int 大小 = a; int 数组[大小] = {0}; 为什么?

回答 4 投票 0

从常量列表中随机选择而不重复?

我正在制作一个乌龟过街游戏,我遇到了一个我不知道如何解决的问题。我在这里阅读了几个关于类似问题的主题,但它们并没有真正帮助我的特定 c...

回答 1 投票 0

什么时候可以使用const int作为数组的大小?

为什么我可以使用本地声明的 const int 作为数组声明的大小,但不允许对作为参数传递的 const int 执行相同的操作? 例如,在下面的代码中为什么...

回答 5 投票 0

“const int*”类型的值不能用于初始化“int* const”类型的实体

我在 vs 2022 社区版本上有 c++ 代码。 导入标准; int main() { constexpr int x = 10; constexpr int* p = &x; } 我不允许将 x 的地址分配给 p

回答 1 投票 0

声明局部变量为const有什么好处吗?

如果我有一个只存在很短时间的函数,那么将颜色列表设置为常量会有什么不同吗? 字符串 getrandcolor(){ 常量字符串颜色[5] = {“红色”,“蓝色”,...

回答 6 投票 0

无法在 Typescript 中导出常量

有人可以帮助我吗 我有 2 个文件 main.ts 和 hi.ts 命中: 导出常量你好=“dd”; 主要.ts: 从“./hi”导入{hello}; ... A类{ 公共说你好(){ 控制台.log(“...

回答 2 投票 0

C 编译器有义务始终从内存中重新加载 const 值吗?

我的嵌入式 C 程序中有一个 const 变量。它在程序代码中用 0 进行定义和初始化。它通过链接描述文件放置在特殊的 ROM 区域中。可以更改特别内容...

回答 2 投票 0

C 和 C++ 的常量正确性有什么区别?

我理解 const 正确性意味着什么,我的问题不是关于 const 正确性是什么。所以我不期待对此的解释或 C++-FAQ 链接。 我的问题是: 这些是什么...

回答 3 投票 0

函数后面的const如何优化程序? [重复]

我见过一些这样的方法: void SomeClass::someMethod() const; 这个 const 声明有什么作用,它如何帮助优化程序? 编辑 我看到这个问题的第一部分...

回答 6 投票 0

const 成员函数可以返回指向数据成员的非常量指针吗?

代码先行: A级 { 民众: ... int *foo() 常量 { 返回_px; } 私人的: int *_px; } 成员函数 foo 返回一个非常量

回答 5 投票 0

C++:将 const 与模板参数结合起来

当我手动替换 T wirh char * 时,以下示例可以正常工作,但为什么不能按原样工作: 模板 A类{ 民众: A(常量 T _t) { } }; int main(){ 常量...

回答 6 投票 0

如何将 const 添加到指向类型?

假设我有一个类模板: 模板 结构A { T值; 无效 foo(自动乐趣) { 乐趣(价值); // ^^^^^^^ 将值作为 const 对象传递 } }; 我想将 const 添加到 v...

回答 1 投票 0

我可以有一个同时接受 const-ref 和非 const-ref 指针的 C++ 方法吗?

我有一些辅助方法,它们通过引用接受指针,如果满足某些条件,则将其向前推进。这是一个例子: char32_t readCodePoint(const char8_t *¤t, const char...

回答 1 投票 0

为什么我收到“未定义常量”错误?

Apache 2.4 / PHP 8.3.1 / MySQL 8.0 / phpMyAdmin 5.2.1。 我相信升级后代码可能已经过时,而且我的编码能力也不是那么好。预先感谢您提供的任何帮助。 以上

回答 1 投票 0

在 PHP 中定义所有文件中都可用的全局常量的最佳方法是什么?

定义全局常量(即在所有 PHP 文件中可用)的最佳方法是什么? 更新:常量和类常量之间有什么区别?它们可以互换使用吗?

回答 8 投票 0

将 Environ("LOCALAPPDATA") 与公共常量一起使用。 (或替代解决方案)

我一直在使用以下VBA代码 公共常量 COSTER_FOLDER = "C:\Coster" 但当他们移动文件夹位置时,这将不再起作用。 新的 Coster 文件夹是 Environ("

回答 2 投票 0

const int 和 const double 在编译时的区别

在阅读这篇文章时,我遇到了这个例子: #包括 #包括 int main() { 常量 int var1 = 5; 常量双 var2 = 8.4; std::cout << &quo...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.