当前位置: 首页 > 知识库问答 >
问题:

无法从未打包的元组初始化常量int

仲孙铭
2023-03-14

问题真的很简单,为什么这段代码不能工作:

#include <tuple>

int main( int argc, char* argv[]) {
    const int a,b = std::tie(std::make_pair(1,2));
    return EXIT_SUCCESS;
}

G++给出了以下错误:

./test.cpp:在函数“int main(int,char**)”中:./test.cpp:4:13:错误:未初始化的const“a”[-Fpermissive]const int a,b=std::tie(std::make_pair(1,2));^./test.cpp:4:42:

错误:无法将“std::pair&”类型的非常量lvalue引用绑定到“std::pair”类型的rvalue
常量int a,b=std::tie(std::make_pair(1,2));

我无法通过使用这种模式(常量或非常量)获得任何类似元组的值返回。这是一个更好的方式来做我在这里试图达到的目标吗?

共有1个答案

秦弘亮
2023-03-14
const int a,b = std::tie(...)

这不是你想的那样。它创建了两个const int变量:

>

  • A,未初始化

    B,初始化为std::tie(...)

    使用std::tie的正确方法如下:

    int a, b;
    std::tie(a, b) = std::make_pair(1, 2);
    

    请注意,您需要AB已经声明,并且需要非常量

    在C++17中,可以改用结构化绑定:

    const auto [a, b] = std::make_pair(1, 2);
    

  •  类似资料:
    • 我正在尝试设置DBMS\U元数据的输出。将\u DDL获取到SQLPlus中的myRET\u VARbind变量。 我尝试了以下脚本。sql: 但我得到: SP2-1504:无法打印未初始化的LOB变量“RET\u VAL” 我还尝试用一个/块来围绕RET\u VAL的赋值: 但是,当我尝试在SQLPlus中运行它时,会出现以下错误: 第5行的错误:ORA-06550:第5行,第1列:PLS-00

    • 我有一个模型,category_count,我想属于2个模型,一个文章模型和一个类别模型。当我尝试访问服务器/管理员/文章时,我得到一个错误未初始化的常量Article::CategoryCount。我使用active_admin进行管理。当我这样做时:服务器/文章/1/category_counts我也得到一个错误未初始化的常量类别CountsController我使用Rails 4 这是我ca

    • 本文向大家介绍tensorflow 初始化未初始化的变量实例,包括了tensorflow 初始化未初始化的变量实例的使用技巧和注意事项,需要的朋友参考一下 今日在Stack Overflow上看到一个问如何只初始化未初始化的变量,有人提供了一个函数,特地粘贴过来共大家品鉴: 通过tf.global_variables()返回一个全局变量的列表global_vars, 然后以python列表解析式的

    • 我假设使用以下元素按以下顺序构建一个字节数组: 对称加密的AES密钥(对于AES 128有一个随机密钥,对于AES 128有一个随机初始化向量。在CBC模式下使用AES 128和PKCS5填充进行加密。在加密之前,文本用UTF-8进行编码) AES IV 加密消息(使用ECB模式下的RSA算法和PKCS1填充、先前生成的密钥和消息收件人的公钥) 我正在做的是获取每个参数的长度,以便创建新的byte

    • 我在这里看到过类似的问题,如果这看起来像是重复的,我很抱歉,但是类似问题的答案对我没有帮助。所以我有一个方法,它是类的一部分。这里是: 错误表明变量min可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不在for循环之外初始化。请帮忙。谢谢