C++ Primer warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11

1146 ワード

Sales_item.h:56:18: warning: defaulted and deleted functions only available with -std=c++11 or -std=gnu++11
     Sales_item()=default;
                  ^
Sales_item.h:70:27: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
     unsigned units_sold = 0; // explicitly initialized
                           ^
Sales_item.h:71:22: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
     double revenue = 0.0;
                      ^
Sales_item.h:45:7: error: constructor required before non-static data member for ‘Sales_item::units_sold’ has been parsed
 class Sales_item {
       ^
Sales_item.h:45:7: error: constructor required before non-static data member for ‘Sales_item::revenue’ has been parsed

ノック練習中に、以上のエラーメッセージが表示されます.defaulted and deleted functionsの使い方はC++11でサポートされるはずです.
解決方法:
sudo vim ~/.bashrc

そしてパスワードを入力します.
90行目で、#some more ls aliasesに次の内容を追加します.
alias g++11='g++ -g -Wall -std=c++11'
alias g++14='g++ -g -Wall -std=c++14'

別名に相当します.