C++に関するリンク集

情報

C/C++ Users Group
歴史あるコミュニティ。
C FAQ 日本語訳
浮動小数点に関する項目は一読しておくと役に立つかも。
Cprogramming.com
Cprogramming.com is a web site designed to help you learn the C or C++ programming languages, and provide you with C and C++ programming language resources.
Pete Isensee氏のHP
最適化やSTL関連情報。https://www.amazon.co.jp/dp/1584500492 シリーズに多数執筆されているお方らしい。
C++ FAQ LITE
This document, C++ FAQ Lite, is not the same as the C++ FAQ Book. The book (C++ FAQ, Second Edition, Cline, Lomow, and Girou, Addison-Wesley) is 500% larger than this document, and is available in bookstores.
Incompatibilities Between ISO C and ISO C++
C99とC++98
Wikibooks > More C++ Idioms / 英語版 <GFDL>
対象とする読者:C++ と関連するパラダイムについてほどほどのレベルの知識を持つ人誰でも
株式会社きじねこ > C/C++迷信集
ISO-IEC JTC1-SC22-WG14 - C > TR 24731: Safer C library functions
ご安全に!
ISO/IEC 14882:1998
C++98
ISO/IEC 14882:2003
C++03
INCITS/ISO/IEC 14882:2012, ISO/IEC 14882:2011
C++11
C/C++ Reference
C言語・C++のリファレンス。STLのコンテナのリファレンスとしても便利。
C/C++ リファレンス - 日本語バージョン。ページの上の方にCHM形式版もあり。
C++ Library Reference
The standard C++ library is a collection of functions, constants, classes and objects that extends the C++ language providing basic functionality to interact with the operating system and some standard classes, objects and algorithms that may be commonly needed.
cpprefjp
本サイトcpprefjpは、プログラミング言語C++のリファレンスを提供するWebサイトです。
C++11の文法と機能 <GFDL>
ついに公開されました。
Microsoft VisualC++
link集/GUI/C++

Develop

Compiler

apache.org C++0x Compiler Support
各種C++コンパイラのC++11対応状況まとめ。
Microsoft VisualC++
C++0x Core Language Features In VC10(VisualC++ 2008/2010)
C++11 Features in Visual C++ 11(VisualC++ 2010/2012)
C++11/14 Core Language Features in VS 2013 and the Nov 2013 CTP
C++11/14 Feature Tables For Visual Studio 14 CTP1
C++11/14/17 Features In VS 2015 RC
C++17 Features In Visual Studio 2017 Version 15.3 Preview
GCC(the GNU Compiler Collection) <GPL>
C++0x/C++11 Support in GCC
C++1y/C++14 Support in GCC
clang <BSD>
The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler
C++98, C++11, and C++14 Support in Clang
Open64 <GPL>
Open64 has been well-recognized as an industrial-strength production compiler. It is the final result of research contributions from a number of compiler groups around the world. Formerly known as Pro64, Open64 was initially created by SGI from SGI's MIPSPro compiler, and licensed under the GNU Public License (GPL v2).

API(Application Program Interface)

link集/開発言語系/C++/API
Microsoft VisualC++#API

Technique

Wikipedia > テンプレートメタプログラミング
flipcode > C++ Compile-Time Binary Constants
klx C++ Libraries
With Unz > C/C++ Programming
浮動小数点演算に関する情報もあり。

Fast Code

特に明記が無ければ、x86アーキテクチャ向け

SSEPlus <Apache License V2.0>
SSEPlus is a SIMD function library. It provides optimized emulation for newer SSE instructions. It also provides a rich set of high performance routines for common operations such as arithmetic, bitwise logic, and data packing and unpacking.
関数一覧
The Aggregate Magic Algorithms
There are lots of people and places that create and collect algorithms of all types.
光成滋生@サイボウズ・ラボ(会社, 個人) > fast strlen and memchr by SSE2
strlen()とmemchr()のSIMD版を作ってみました
MUSIC-DSP SOURCE CODE ARCHIVE
x86向けのコードがたくさんあります。
NVIDIA - Fast Math Routines
FloatToInt(), fastsqrt()等高速に演算する関数の紹介。
K's Net for PlayStation's Programming > お役立ち?
高速sqrt()関数に関する情報等。
√Square Roots
MMX, VC++
Known your FPU:Fixing Floating Fast
2006年に書かれている。
memcpy(), a fast and portable implementation
C++全般
{ allegro.cc } > forums
fast memcpy
C++全般
fastest bliting method
MMX, GCC/VC++
XELF's Computer Entertainment Craftsite > Fast Memory Copy / 高速なメモリ複製 / 旧サイト
MMX/SSE, VC++
stereopsis > Fast P3 Memory Access
MMX, VC++
NeL(Nevrax Library) > fast_mem.cpp
SSE, VC++
flipcode > fastmemcpy
SSE2, Intel C++ Compiler/GCC/VC++.NET
transcode > memcpy for 3dnow
3DNow!, GCC
AMD > memcpy_amd.zip
MMX, VC++.NET/MASM, AMD純正のコード。
gamedev.net > Speeding up memcpy <GPL>
MMX/SSE/AMD64, NASM
The CodeProject > Using SSE/SSE2 for optimization
SSE/SSE2, VC++.NET

Tutorial

ロベールの部屋
C++講座等。blog

SampleSourceCode

NAKAMURA Minoru's Home Page > プログラミング全般
スタックオーバーフローのハンドリング等。
「オペレーティングシステム」小サンプルプログラム集
Windows/Unix環境における、スレッド/排他制御/プロセス/計時/例外処理/保護違反例外処理/ファイルマッピング/ソケットのシンプル且つ簡潔なサンプル。
GC GreatCode <Public Domain>
GC is a well known C/C++ source code beautifier that is now fully open source. I have no time to maintain the source code, so if you want to contribute to GC, ask me, I'll put you in the GC developer list, so you can access CVS.

Tips/FAQ

wchar_t型の定義
どうやらOS毎に違う模様。
OSコンパイラ/ライブラリ定義定義場所
WindowsVisualC++ 6.0 SP6unsigned shortstdlib.h 他多数
WindowsPlatform SDK
- 2003年2月版
- Windows Server 2003 SP1
unsigned shortBaseType.h
Dbt.h
RpcNdr.h
strsafe.h
WindowsVisualC++ .NET 2003unsigned shortstdlib.h 他多数
IRIXMIPSproint/usr/include/curses.h
Cygwingcc 3.4.4__WCHAR_TYPE__/usr/src/gcc-3.3.1-3/gcc/ginclude/stddef.h
sizeof( wchar_t ) = 2 だった
C言語コンパイラでC++スタイルのコメント「//」
MIPSpro Cコンパイラ(cc)/VisualC++ではコメントとして扱われビルドが通る。
C/C++のリテラル定数
C/C++において、数値にアルファベットを組み合わせる事でデータ型を示す。大文字・小文字の区別はないが大文字に揃えた方が見易いと思う。
使用例)「1000L」「134000UL」「0.12345F」
文字
なし(整数)int
なし(実数)double
Uunsigned int
Llong
ULunsigned long
Ffloat
I64*1__int64
UI64*2unsigned __int64
LLlong long
ULLunsigned long long
アセンブラのコードを書かないでMMX/SSE/SSE2/SSE3を利用したい
Intel C++ Complierの下記intrinsicsヘッダをインクルードする事で、ベクトル組み込み関数が利用可能になる。VC++6.0 with ProcessorPack, VC++.NETやGCCにも組み込まれている。
#include <mmintrin.h>	// for MMX(Multi Media eXtension)
#include <xmmintrin.h>	// for SSE(Streaming SIMD Extensions)
#include <emmintrin.h>	// for SSE2
#include <pmmintrin.h>	// for SSE3
#include <tmmintrin.h>	// for SSE4
#include <smmintrin.h>	// for SSE4.1
#include <nmmintrin.h>	// for SSE4.2
#include <ammintrin.h>	// for SSE5(AMD only)
#include <wmmintrin.h>	// for AES-NI(Advanced Encryption Standard - New Instructions)
#include <immintrin.h>	// for AVX(Intel Advanced Vector eXtentions)
#include <ymmintrin.h>	// for AVX2(Intel Advanced Vector eXtentions 2)
SSEPlusを利用すれば、VC++でSSE3以降も利用可能かも。

DEFINE MACROs

Microsoft > MSDN Library > C/C++ Preprocessor Reference > Predefined Macros
redstrange Wiki > 定義済みマクロ

TroubleShoot

templateなクラスの中でSTLのiteratorがビルドエラー
(修正前)
template< typename T >
class CTest
{
  typedef std::vector< T >::iterator HOGE_ITER;
};
(修正後)
template< typename T >
class CTest
{
  typedef typename std::vector< T >::iterator HOGE_ITER;
};
データ型の前に「typename」を付けてやると解決。

Library

link集/ライブラリ系/C++
下記以外のものはこちらのページを参照方。

規格

<stdint.h> for Visual C++
Visual C++ 7.1/8.0で使用可能な<stdint.h>です。C++用として、std::tr1名前空間を用いた<cstdint>も同梱しています。
<inttypes.h> for Visual C++
C99で導入された標準ヘッダ <inttypes.h> を Visual C++ で使えるようにするためのものです。C++でも、TR1 で <cinttypes> として導入されています。

STL(Standard Template Library)

SGI - Standard Template Library Programmer's Guide
STLport / http://sf.net/projects/stlport
SGIのSTLベース。本Wiki管理者によるいい加減なビルド方法はこちら
autoexp.dat - VisualStudio 2005以降のウォッチウィンドウ表示用
STDCXX - Apache C++ Standard Library <Apache License V2.0>
The stdcxx project (pronounced "standard C++ library", not S-T-D-C-X-X) is a collection of algorithms, containers, iterators, and other fundamental components of every piece of software, implemented as C++ classes, templates, and functions essential for writing C++ programs.
RogueWave Software. Inc.のSourcePro® Coreがベースになっている模様。
User's Guide
Synesis Software > STLsoft / http://sf.net/projects/stlsoft <BSD>
Robust, Lightweight, Cross-platform Template Software
STL for eMbedded Visual C++ - Windows CE
I have prepared an STL adaptation for eMbedded Visual C++. It is designed to work with Windows CE devices, such as H/PCs, Palm-sized PCs and Pocket PCs, and it is based on SGI's STL (3.3). An earlier version is still available, targeting Windows CE 2.0 / 2.01 and Visual C++ 5 (no test was done under Visual C++ 6).
InitUtil - An STL Container Initialization Library
An STL Container Initialization Library
The Code Project > Pretty Good Initialization Library
STLのコンテナへの要素の追加を便利にしようという試み。
Boost Assignment Library <Boost Software License>
The purpose of this library is to make it easy to fill containers with data by overloading operator,() and operator()().then copied into a container:
allocator <LGPL>
A Pooled, Shared Memory allocator for the C++ Standard Template Library(STL). Allows processes to share an STL container class to facilitate control and communications between the connected processes.
ShmAllocator <GPL>
The ShmAllocator project is an implementation of a STL shared memory allocator. It uses the SystemV IPC interface for shared memory blocks and locks(semaphores), and therefore should work on any OS that supports that interface.
STLshm <LGPL>
STLshm provides an C++ STL Allocator implementation for creating and using STL containers (and any other allocator aware types) in shared memory regions. It supports multiple shared region implementations.
flecxx <BSD>
flecxx is a simple, efficient, 100% header-only, C++ library that enhances standard and popular third-party libraries by eliminating abstraction dissonance.
STLFilt
分かりづらいSTLのエラーメッセージを整形するフィルタ。
GDB STL Utilities
There's a wonderful tool by Gilad Mishne for debugging STL code with GDB.
ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き > gdbでSTLのコンテナの値を表示する方法
上記のツールを利用しない古いやり方。
MSDN > Standard Template Library Samples
The following samples demonstrate the use of the Standard Template Library, a subset of the Standard C++ Library.
Dinkumware Ltd. > Fixes for Library Bugs in VC++ V5.0/V6.0
The following bug fixes correct problems in the Standard C++ Library that accompanies Microsoft Visual C++ V5.0 and V6.0.
επιστημη(えぴすてーめー)氏のHP
別館の方にC++に関する情報がまとまっています。
角 正史のページ
C++の基本的な部分の解説もある。
KAB-studio > Codian
トップページは仕事中に見るとアレゲだが、STLに関する情報は多彩。特に書籍ではあまり触れられていないiostreamに関する情報等。
Thread-safety for SGI STL
https://www.amazon.co.jp/dp/4881357786
円。サンプル沢山。
https://www.amazon.co.jp/dp/4894714329
円。
https://www.amazon.co.jp/dp/4894714108
円。vectorが確保しているワークメモリの解放方法等。
正誤表
https://www.amazon.co.jp/dp/487311196X
円。全てのC++標準ヘッダに関する説明あり。
https://www.amazon.co.jp/dp/4894712458
円。各種コンテナの利用状況別ベンチマークやinline関数に関する説明あり。
https://www.amazon.co.jp/dp/477412401X
円。関数オブジェクトの具体的な利用方法及びサンプルが掲載されている。
https://www.amazon.co.jp/dp/0321305507
円。サポートページ, サポートページ

Boost

Boost / http://sf.net/projects/boost <Boost Software License>
C++の準標準ライブラリ。
sf.net > boost
sf.net > boost-binaries
Boost 翻訳プロジェクト 公開ページ
BoostPro Binary Installer for Visual C++
For users of Visual C++ 7.1 (Visual Studio 2003), 8.0 (Visual Studio 2005), and 9.0 (Visual Studio 2008) - all with the latest service packs - we offer an installer that will place source, documentation, and compiled 32-bit library binaries on your system.
The unofficial BCB Boost patches
A set of patches for official Boost library releases to provide support for the latest compiler from Borland
Boostドキュメント日本語化プロジェクト
boostjp
日本語のboost情報の総本山。
Let's Boost
Boost C++ Libraries の紹介サイトです。
Entangled Space > boost info
ここに置いてあるようなコードはコード片ですのでご自由にご使用下さい。
とらいきゃっち・ふぁいなりー
このページには、xyzzy lispとかC++についてのコンテンツがあります。
p_stade;
Boost関連の話題が多いBlog。
Hamigaki C++ Libraries
BoostベースのC++ライブラリ集です。現在はサウンドプログラミングがメインですが、便利なものはどんどん追加していきます。作者の方のBlog
CodeProject > Pretty Good Initialization Library
Are you tired of filling data manually into STL containers? With the Initialization Library it gets a lot easier.
Boost CVPR(Computer Vision and Pattern Recognition)
Boost Computer Vision and Pattern Recognition Library
https://www.amazon.co.jp/dp/4798017043
円。サポートページ
https://www.amazon.co.jp/dp/4798007862 - サポートページ
https://www.amazon.co.jp/dp/4894714191
円。サポートページ
https://www.amazon.co.jp/dp/0201729148
円。
https://www.amazon.co.jp/dp/0321133544
円。
https://www.amazon.co.jp/dp/0982219199
円。
The Boost C++ Libraries - 旧版は<CC BY-NC-ND 3.0>ライセンスで公開中

Tool

MCPP -- a portable C preprocessor / http://sf.net/projects/mcpp
MCPP は次のような C/C++ プリプロセッサです。
  • C90, C99, C++98 のすべてに対応している。
  • C/C++ プリプロセッサの詳細で網羅的なテストをする検証セットが付属している。これを適用すると、MCPP は多くのプリプロセッサの中で抜群の成績を示す。
  • 診断メッセージが豊富で的確である。潜在的なバグや portability の欠如など、ソースのプリプロセス上の問題点をほぼすべてチェックすることができる。
  • デバッグ情報を出力する各種の #pragma ディレクティブを持っている。
  • Portable である。GCC, Visual C++ 等、UNIX 系・DOS/Windows 系の多くの処理系に対応している。
  • ソースからは各種の仕様のプリプロセッサを生成することができる。
  • Free software である。
  • 日本語版と英語版の詳細なドキュメントが付属している。
objprelink
Tools for speeding up the dynamic linking of large C++ libraries by manipulating the object code produced by g++ in order to reduce the number of relocations.
Intel® Threading Building Blocks <GPL>
Intel® Threading Building Blocks (TBB) offers a rich and complete approach to expressing parallelism in a C++ program. It is a library that helps you leverage multi-core processor performance without having to be a threading expert.
https://www.amazon.co.jp/dp/4873113555
https://www.amazon.co.jp/dp/4877831967
cppcheck <GPL>
Static analysis of C/C++ code. Checks for: memory leaks, mismatching allocation-deallocation, buffer overrun, and many more. The goal is 0% false positives. See the wiki for more information.
cppcheck 日本語マニュアル

Link集へのLink

YoLinux Tutorial - Software Development on Linux
海外サイト。各種OS環境判定用マクロ情報など。

関連書籍

和書

https://www.amazon.co.jp/dp/487311148X
円。ビット演算や固定小数点演算等本当に実践的。
https://www.amazon.co.jp/dp/4894714353
円。
https://www.amazon.co.jp/dp/4434046683
円。タイトルを見るとアレゲな感じがするが、内容はビット演算に関する詳細な解説やテクニックの紹介。
正誤表
https://www.amazon.co.jp/dp/4873113032
円。
https://www.amazon.co.jp/dp/4781911560
円。
https://www.amazon.co.jp/dp/4839926050
円。WebPage版
https://www.amazon.co.jp/dp/4797344369
円。
https://www.amazon.co.jp/dp/4894712784
円。
https://www.amazon.co.jp/dp/4894711249
https://www.amazon.co.jp/dp/4894715295
円。
原書:https://www.amazon.co.jp/dp/0201548550
https://www.amazon.co.jp/dp/4798119598
円。
原書:https://www.amazon.co.jp/dp/0321543726
https://www.amazon.co.jp/dp/4774174084
円。
https://www.amazon.co.jp/dp/4774157155
https://www.amazon.co.jp/dp/4797354534
円。
https://www.amazon.co.jp/dp/4798119229
円。
原書:https://www.amazon.co.jp/dp/0201734842
https://www.amazon.co.jp/dp/4798120391
円。
原書:https://www.amazon.co.jp/dp/0321227255
https://www.amazon.co.jp/dp/4879667765
円。
https://www.amazon.co.jp/dp/4873111919
円。
https://www.amazon.co.jp/dp/4798109924
円。ビックリする程コンパクトになった。
https://www.amazon.co.jp/dp/4434124234
円。
https://www.amazon.co.jp/dp/4434204548 オンデマンド版
https://www.amazon.co.jp/dp/4797375957
円。
https://www.amazon.co.jp/dp/4894714515
円。正誤表
https://www.amazon.co.jp/dp/4756118089
円。正誤表正誤表(原書)
https://www.amazon.co.jp/dp/4894714760
円。
https://www.amazon.co.jp/dp/4756118534
円。正誤表
https://www.amazon.co.jp/dp/4894712709
円。
https://www.amazon.co.jp/dp/4894714663
円。
https://www.amazon.co.jp/dp/4894716860
円。
https://www.amazon.co.jp/dp/4891004967
円。
https://www.amazon.co.jp/dp/4798106321
円。
https://www.amazon.co.jp/dp/4048919873
円。
https://www.amazon.co.jp/dp/4756148239 , 正誤表
https://www.amazon.co.jp/dp/4939007286
https://www.amazon.co.jp/dp/4939007332
https://www.amazon.co.jp/dp/4939007545
https://www.amazon.co.jp/dp/4939007901
https://www.amazon.co.jp/dp/4862460151
https://www.amazon.co.jp/dp/4862460291
https://www.amazon.co.jp/dp/4862460763
https://www.amazon.co.jp/dp/4862461417
https://www.amazon.co.jp/dp/4873112885

洋書

https://www.amazon.co.jp/dp/020170434X
円。
https://www.amazon.co.jp/dp/0201699486
円。オンラインで公開中。
https://www.amazon.co.jp/dp/0321714121
円。
https://www.amazon.co.jp/dp/0201734842
https://www.amazon.co.jp/dp/0321412990
円。TR1について書かれてる。

*1 VisualC++のみ対応
*2 VisualC++のみ対応

Last-modified: 2015-06-09 (火) 08:43:17