Qt下关于tuple用法 ”too many arguments“警告解释

Qt环境下使用tuple

#include <QCoreApplication>

#include <windows.h>
#include <windowsx.h>
#include <QDebug>
#include <QString>
#include <QObject>
#include <QStringList>
#include <string>
#include <tuple>
#include <iostream>
typedef std::tuple<int, double, int, double> Mytuple;
int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    Mytuple c0(0, 1, 2, 3);
    std::tuple<int,int> t = std::make_tuple(1,2);
    std::cout << std::get<0>(t);
    std::cout << std::get<1>(t);

    return app.exec();

}

正常使用tuple发现问题,只要tuple参数大于一个就会出现警告,但实际运行程序依然可以使用,设置断点调试程序发现tuple里数据正常工作。

经过google有人这样解释:

    Qt环境下C++11并没有完善(尽管C++17都……),嗯……所以这并不是使用者我们的问题,也因此才是警告而不是错误。

    给我的感觉就像是在vs2012下使用scanf报警告让你使用scanf_s一样,可以用,但是警告就挂在上面。经过几个补丁之后警告就直接变成错误,告诉你必须要使用scanf_s。

    嗯,另外据大佬们说Qt国内用的人相较于国外还是少,许多文档都还是英文的,建议以后有问题还是问谷哥吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值