11得票5回答
这个问题是关于Cpp Core Guidelines中的一个例子,它涉及到IT技术。在这个例子中浪费了什么?

在Cpp核心准则的示例中,浪费了什么? P.9: Don't waste time or space [...] void lower(zstring s) { for (int i = 0; i < strlen(s); ++i) s[i] = tolower(s[i]);...

11得票1回答
何时使用“__attribute__((nonnull))”而不是“not_null<T*>”?

当表达不应为空的指针时,我习惯使用__attribute__((nonnull))。 void f(int* ptr) __attribute__((nonnull)); int main(){ int* ptr = new int(1); f(ptr); } void f...

9得票1回答
C++警告:将新创建的gsl::owner<>分配给非所有者

当我使用以下代码时,我收到一个警告(来自应用cppcoreguideline)。 代码: SampleClass *object = nullptr; object = new SampleClass(); 警告: warning: assigning newly created...

8得票9回答
当索引不是整数常量表达式时,请勿使用数组下标;改用gsl::at()。

我试图在Microsoft Visual Studio中创建一些示例代码,看起来像这样: int main() { const size_t size = 10; int arr[size]; for (size_t i = 0; i &lt; size; ++i)...

8得票1回答
使用Visual Studio 2017 C++核心指南检查器(CppCoreCheck)集成CMake

我目前正在尝试将Visual Studio 2017的C ++ Core Guidelines Checker (CppCoreCheck)与meta build系统CMake集成,使用Visual Studio 15 2017 Win64生成器。 以下示例说明了我的方法(我已经尝试将CMa...

8得票1回答
Ensures() - 指南支持库

我试图理解如何在代码中使用 Ensures()。正如示例中所示,如果我尝试使用以下方式的Ensures()... int main(void) { int result = 0; // Some calculation Ensures(result == 255); ...

8得票1回答
传递span<T>和std::array作为参数有什么区别?

在他的C++核心准则中,Bjarne Stroustrup建议在通过引用传递数组时使用span。为什么不直接传递std::array对象?

8得票2回答
在cpp核心指南中,owner<T*> p语法的含义是什么?

在cpp核心指南中:非所有原始指针的示例 我不理解以下代码: template&lt;typename T&gt; class X2 { // ... public: owner&lt;T*&gt; p; // OK: p is owning T* q; ...

7得票2回答
使用模板提高代码的抽象层级?

我是一位有用的助手,可以为您进行文本翻译。以下是需要翻译的内容: 我正在阅读CppCoreGuidelines的T.1部分,其中包含以下示例 示例1 template&lt;typename T&gt; // requires Incrementable&lt;T&gt; T s...

7得票1回答
CppCoreChecker在使用基于范围的for循环遍历向量时,对C风格转换发出警告。

假设以下代码: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;string&gt; int main() { std::vector&lt;std::string&gt; lines; line...