相关疑难解决方法(0)

`constexpr`和`const`之间的区别

constexpr和之间有什么区别const

  • 我什么时候才能只使用其中一个?
  • 我何时可以同时使用这两种方法?如何选择?

c++ const constexpr c++11

540
推荐指数
9
解决办法
19万
查看次数

什么时候应该在C++ 11中使用constexpr功能?

在我看来,拥有"总是返回5的功能"正在破坏或淡化"调用函数"的含义.必须有一个原因,或者需要这种能力,或者它不会出现在C++ 11中.为什么会这样?

// preprocessor.
#define MEANING_OF_LIFE 42

// constants:
const int MeaningOfLife = 42;

// constexpr-function:
constexpr int MeaningOfLife () { return 42; }
Run Code Online (Sandbox Code Playgroud)

在我看来,如果我编写了一个返回字面值的函数,并且我进行了代码审查,有人会告诉我,我应该声明一个常量值而不是写回返5.

c++ constexpr c++11

322
推荐指数
9
解决办法
11万
查看次数

我应该参考lambda吗?

我应该参考lambda以避免复制吗?

这段代码会复制lambda吗:

auto myLambda = []() {/* do stuff */ }
Run Code Online (Sandbox Code Playgroud)

如果是的话,我应该这样写吗:

auto &myLambda = []() {/* do stuff */ }
Run Code Online (Sandbox Code Playgroud)

PS:很抱歉,有人用谷歌搜索了一个可能是新手的问题,但没有找到答案。

c++ lambda reference value-categories

5
推荐指数
1
解决办法
76
查看次数

在 C++ 中,为什么要使用 `uint8_t` 来声明字符串?

作为使用 React Native 的移动开发人员,我需要使用创建和加密文件的 C++ 代码。我对 C++ 没有太多经验(我上次写一些东西已经是 15 年前在大学时的事了)。

如果我错了,请纠正我。

这让我很烦恼。这是文件的类型定义:

typedef struct File 
{
    uint8_t FileName[64];
    uint8_t userName[64];
}File;
Run Code Online (Sandbox Code Playgroud)

为什么要使用类型uint8_t来存储字符串而不是std::string

后来,事情变得更加扑朔迷离。我们需要将所有字符一一解析出来,并写入到临时文件中。

#define FILE_NAME_LEN   64


CustomFile CFile::getCustomFileFromFile(tFile f_File)
{
    CustomFile returnValue;
    for(int i = 0;i<FILE_NAME_LEN;i++){
        returnValue.FileName[i] = f_File.FileName[i]; 
    }
    for(int i = 0;i<FILE_NAME_LEN;i++){
        returnValue.user_name[i] = f_File.user_name[i];
    }
    return returnValue;
}



bool WriteEncryptFile(QString fpath,tFile *p_tFile)
{
    // Convert the tFile object to a CustomFile object
    CustomFile customFile = CFile::getCustomFileFromFile(*p_tFile);
}
Run Code Online (Sandbox Code Playgroud)

c++ uint8t

2
推荐指数
1
解决办法
275
查看次数

C++ - 是否将 const 幻数放入命名空间

我总是习惯#define在 cpp 文件开头的某个地方定义幻数。我想把它改成const数字。(全局变量在 cpp 文件中声明/定义。)这是个好主意吗?我应该将它们放入匿名命名空间吗?我从不#include在任何地方使用 cpp 文件。

c++ namespaces constants magic-numbers

1
推荐指数
1
解决办法
870
查看次数