我对这些说法者感到非常沮丧,因为我了解他们自己做了什么,但我发现当他们彼此使用时很难理解。例如,野外的一些代码包含 -
namespace{
static constexpr char const *Hello[] = { "HelloString", "WorldString"};
...
}
这甚至做了什么?
const
吗?const *Hello
对我没有意义。这里有什么不变的?字符串或指针*Hello
?最糟糕的是,它编译:/。当然,它会编译,因为它们是有效的陈述,但它甚至意味着什么?
答案 0 :(得分:6)
为什么当你已经在匿名命名空间内时使用静态?
我没有看到这里的理由,除非它是为C ++ 03兼容性而写的。
为什么要使用
$this->db->where('lower(status) <>', 'completed'); $this->db->order_by('calldate','asc'); $q1 = $this->db->get('records'); //where and orderby applies to this query only $q2 = $this->db->get('other_records'); //where and orderby does not apply to this $data1 = $q1->result_array(); $data2 = $q2->result_array(); $data = array_merge($data1, $data2);
- 这里没有理由使用它。不会有一个简单的常量吗?
同样,这里没有必要,但它确实表明它是一个编译时常量。另请注意,此处constexpr
表示指针为constexpr
,并且在constexpr
之后无需const
(请参阅下一部分)。
*
对我没有意义。这里有什么不变的?字符串或指针* Hello?
const *Hello
适用于左边,除非在这种情况下没有任何内容适用于右边。 const
左侧的const
表示取消引用时的指针是常量,而右侧表示它是指向某个内容的常量指针。
*
我在&#34;左边&#34;上找到this页面规则确实有助于理解复杂的声明。