【问题标题】:As Binary literal is introduced in c++14..but it could used in C++98/C++03/C++11由于二进制文字是在 c++14 中引入的..但它可以在 C++98/C++03/C++11 中使用
【发布时间】:2019-11-25 17:41:33
【问题描述】:

请看下面的代码 sn-p 它在 C++03/C++11 中编译并运行良好。

  #include <iostream>
  using namespace std;

  int main(){

          int a = 0b1111;
          cout<<"a:: "<<a<<endl;

          int var = 4;
          if(var == 0b0100)
                 cout<<"True----------------\n";
          else
                 cout<<"Flase---------------\n";

          return 0;
 }

输出:- 一个:: 15 没错----------------

请帮助我 C++03 和 C++14 二进制文字有什么区别 甚至二进制文字也可以在 c++03/C++11 中使用。

【问题讨论】:

  • 哪个编译器?
  • 你是怎么编译的?什么编译器?什么版本?您将哪些选项传递给编译器?
  • 我在 ubuntu ver-18.04 上使用过 G++ 编译器
  • 你传递给编译器的选项是什么?您至少需要一个标志来告诉它编译为 C++03 或 C++11
  • 我去掉了c++17标签,我对c++-cli标签不太确定,这是c++还是c++/cli?

标签: c++ c++11 c++14


【解决方案1】:

如果您使用 -Wpedantic 编译器选项,它会在 C++03/C++11 模式下发出警告:

警告:二进制常量是 C++14 功能或 GCC 扩展

Binary constants 是 GCC 提供的 C language extension。他们的扩展文档说“它们中的大多数也可以在 C++ 中使用”,这解释了它编译的原因。

【讨论】:

    猜你喜欢
    • 2011-02-06
    • 2015-10-17
    • 2014-05-27
    • 2019-02-18
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    相关资源
    最近更新 更多