読者です 読者をやめる 読者になる 読者になる

GCC

GCC 5.0のC++関係機能

https://gcc.gnu.org/gcc-5/changes.html 網羅的ではなく、気になったものだけ抽出して書いています。 C++11、C++14関係の対応状況は、cpprefjpサイトにもほぼ反映しました。 C++14を全実装 変数テンプレート 宣言時のメンバ初期化を持つ型の集成体初期化を…

GCC 4.9がリリースされました

GCC 4.9.0 released, full of improved C++11 and C++14 features C++14対応が主ですが、C++11にも、以下のサポート改善が入っています。 <regex>をサポート <map>、<set>、<unordered_map>、<unordered_set>に、ステートフルアロケータのサポートを追加 <regex>は、昨年のGoogle Summer of Codeで学生さんが実装し</regex></unordered_set></unordered_map></set></map></regex>…

Spirit.Qiのパーサーをautoで受けると吹っ飛ぶ問題が解決した

GCCにバグ報告:最適化オプションを付けるとBoost.Spiritのプログラムが吹っ飛ぶ 先日GCCにバグ報告した件ですが、GCCのバグではありませんでした。@k_satodaさんに教えてもらいました。 Boost.Spirit.Qiが内部で使っているBoost.Protoの式テンプレートが、…

GCCにバグ報告:最適化オプションを付けるとBoost.Spiritのプログラムが吹っ飛ぶ

Bug 59709 - break program behavior with optimization GCC 4.8.1、GCC 4.8.2で最適化オプション(たとえば-O2)を付けると、Boost.Spiritを使ったコードが吹っ飛びます。 吹っ飛びますというのは、プログラムの次の行が実行されず、どこかに行ってしまう、と…

GCC 4.8.2リリース

GCC 4.8 Release Series GCC 4.8.2がリリースされました。 これは、GCC 4.8シリーズのバグフィックスバージョンになります。 私が報告したバグも2件修正されています。Bug 58098 - wrong return value of normal_distribution::min() Bug 58302 - compilatio…

GCC 4.8.1 - C++11全実装バージョン

GCC 4.8 Release Series Changes, New Features, and Fixes アナウンスが遅くなりましたが、GCC 4.8.1がリリースされています。 このバージョンでは、decltypeのN3276仕様に対応、メンバ関数の左辺値 or 右辺値によるオーバーロードという機能が追加され、C+…

GCC 4.8がリリースされた

GCC 4.8 Release Series Changes, New Features, and Fixes C++周りの変更は以下。 言語 thread_localキーワードのサポートを追加。 属性構文のサポートを追加。GCCに元々あった独自属性も、C++11属性の構文で提供されるようになりました。 alignas属性のサ…

GCCに報告してたバグが修正された:std::advance()の負数チェック

Bug 53515 - InputIterator version std::advance needs negative check GCCとVCにバグ報告: std::advance()の負数チェック 少し前に報告してた問題が修正されました。 assertを1行足すだけですが。

GCCとVCにバグ報告: std::advance()の負数チェック

Bug 53515 - InputIterator version std::advance needs negative check InputIterator/ForwardIteratorバージョンのstd::advanceに負数チェックがない 些細なものですがバグ報告しました。

VCとGCCにバグ報告 - std::arrayのtuple_elementとget()の境界チェック

Bug 53080 - tuple interface to std::array doesn't check boundsstd::arrayに対するstd::tuple_elementの特殊化で、境界チェックが行われていない std::arrayに対するstd::tuple_elementの特殊化とstd::get()関数のオーバーロードでは、インデックス値Iがa…

decltype(x)::memberはGCC 4.7から

decltypeした型のメンバを使用する機能は、GCCでは4.7から使用できるようになったようです。備忘記。 #include <iostream> #include <map> #include <boost/range/algorithm/for_each.hpp> int main() { const std::map<std::string, int> m = { {"Alice", 16}, {"Bob", 32}, {"Carol", 23} }; boost::for_each(m, [](decltype(m)::</std::string,></boost/range/algorithm/for_each.hpp></map></iostream>…

GCC 4.7がリリースされました

GCC 4.7 Release Series Changes, New Features, and Fixes 遅くなってしまいましたが、2012/03/22(木)にGCC 4.7.0がリリースされました。 リリースノートからC++11周りの変更点を抜粋します。 C++11を使用可能にするためのオプションをこれまで-std=c++0x, …

GCC 4.7にはTransactional Memoryの拡張が入る予定

Transactional Memory in GCC gcc 4.7 adds Transactional Memory for c/c++ - reddit GCCの言語拡張で、Transactional Memoryを書くための構文と属性が提供されるようです。 __transaction_atomic { c = a - b; } コンパイラの恩恵が受けられると最適化に期…

GCC 4.5から使用可能なC++0x機能

以下の4つです。 #include <iostream> #include <vector> #include <algorithm> template <class T> class smart_ptr { T* p_; public: smart_ptr() : p_(0) {} explicit operator bool() const // 1.明示的な型変換演算子 { return p_ != 0; } }; int main() { smart_ptr<int> p; if (p) {} // int x = </int></class></algorithm></vector></iostream>…

cygwinのGCCでBoostを使う

φ(..)メモメモ... g++ -Wall -o sample main.cpp -std=gnu++0x -I "C:\Program Files\boost\boost_1_39_0" なぜかうまくいかなかった例 g++ -Wall -o sample main.cpp -std=gnu++0x -I "/cygdrive/c/Program Files/boost/boost_1_39_0/"g++ -Wall -o …

GCC 4.4動いた!

ネタ元:blog.y4su0.com - gcc 4.3.1 を Windows で使ってみる Windows用にビルドされたGCCのバイナリがあると聞いたのでインストールしてみました。ここからgcc 4.4-20090123のsnapshot版をダウンロードして、インストーラを使ってインストール とても簡単…

ConceptGCCでコンパイルすると落ちる

GCC

ConceptGCC の新バージョンが出たと聞いたのでここから「August 7, 2008 -- ConceptGCC 4.3.0 Alpha 7」の cygwin 版をダウンロードしてインストールして PATH=/opt/conceptgcc-4.3.0-alpha-7/bin:${PATH} conceptg++ main.cppとすると cc1plus.exe が落ちま…

GCC 4.4 の C++0x 対応

GCC

C++0x Language Support in GCCStatus of Experimental C++0x Support in GCC 4.4 4.4 かードラフトに入ったばかりで実際使ってみないと効果があまり実感できないものが入るな

GCC 4.3.0ではなくなったものもある

GCC

ConceptGCCにはあったConceptと拡張for文がなくなってる。。。とても残念です

GCC 4.3.0でC++0xコードのコンパイル

GCC

「-std=c++0x」のオプションを付けるとC++0xのコードがコンパイルできる このオプションを指定しないと↓のようなコンパイルエラーになる 「error: ISO C++ does not include variadic templates」 右辺値参照とかだと「&&演算子なんか使えないよ」という感じ…

GCC 4.3.0インストール完了

GCC

かそくそうち - gcc4.3.0ビルドメモ を見ながらやったらcygwinでインストールできました GCC 4.3.0のダウンロード先はここ GCCの前にFLEXとmakeとm4とMPFRとGMPをインストールしました GCCのインストールだけで6時間くらいかかった。。。 ただ、インストール…

GCC 4.3リリース

GCC

http://gcc.gnu.org/ cygwinで使えないかなー・・・誰かLinuxマシンちょーだい

浮動小数点定数

GCC

ほしかったものがGCCにはあるんですね。http://d.hatena.ne.jp/sulpsulpc/20070729 struct pi { static const double value = 3.14159265358979323846; }; GCC(Cygwin)にWindows用のIDEとかないのかなー。MinGWって、最新のGCC使えるのかな? GCCの言語拡張…