无法使用大括号为 c++ 对赋值
Unable to use curly brackets to assign values to c++ pair
每当我使用大括号为一对赋值时,我都会收到以下错误
error: expected expression
p = {0, 0};
这是代码 -
#include <iostream>
#include <utility>
using namespace std;
int main() {
pair<int, int> p;
p = {0, 0};
return 0;
}
我正在使用Xcode附带的clang编译器。
我不知道为什么这不起作用,因为它在 ideone 上工作正常
此语法使用列表初始化,特别是该页面上的形式 (10(。由于列表初始化仅在 C++11 中引入,因此您需要使用该版本进行编译。Clang 默认使用 C++98 进行构建,因此您需要使用-std
标志指定更高版本。获得列表初始化的最小值是-std=c++11
,但您可以通过-std=c++14
或-std=c++1z
获得更多功能(这意味着 C++ 的下一个版本,几乎肯定会是 C++17,在不到两周的时间内标准化(。
我不知道当你选择C++时ideone使用什么编译器或标志,但它显然支持C++11。
相关文章:
- 为"adjacent"变量赋值时出现问题
- C++中的赋值发生,尽管右侧出现异常
- 用C++中的sscanf赋值
- 为std::string的某个索引赋值
- 重载Singly Linked List中的赋值运算符
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- gtest_使用setargpointee在函数中赋值
- 非常量变量只读位置的赋值
- 使用赋值运算符重载从类中返回jobject
- C++数据文件、数组和计算赋值
- 为什么在使用转换构造函数赋值后调用C++类的析构函数?
- 全局作用域中函数指针的赋值
- 错误:在为指针赋值时,void值没有被忽略
- 标准库类型的赋值运算符的引用限定符
- 关于 c++ 函数中指针赋值的简单问题
- 复制构造函数、赋值运算符C++
- 标准::变体的赋值运算符
- cin >> int 给定一个字符串将 int 赋值为 0
- if 子句中的赋值不起作用
- 复制包含C++所有元素的对象!(构造函数和赋值,最佳实践?