constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami
メディア関係者向けお問い合わせ先 メールでのお問い合わせ: pr-jp@google.com メディア関係者以外からのお問い合わせにはお答えいたしかねます。 その他すべてのお問い合わせにつきましては、ヘルプセンターをご覧ください。
既に mattn さんが、「Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!」で紹介してくださっています (mattn さん、アドバイス&バグ情報ありがとうございます!) が、いまさら C++ で JSON パーサを作りました。それは、以下の3点を満たすものがなかったから。 ヘッダファイル only boost 等、他の重たいライブラリに依存しない array や object が STL にマッピングされる コードは、coderepos に置いてありますので、よろしければお使いください (picojson.h)。 なお、現時点での制限事項として、 \n や \r, \uXXXX といったエスケープの処理が未実装rev. 34232 で対応しました (含サロゲートペア) 空白文字の判断基準が RFC と異なるrev. 34277 で空白と
kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から本格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl
Last update 1999/08/07 STL超入門 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 はじめに STLの知名度が意外と低いので、啓蒙のためにSTL入門を書くことにします。普段双方向リンクリストや動的配列のコードを書くのに飽きている人は、読んでみてください。絶対使ったほうがラクですから。 こんな人が対象 STLはC++の「テンプレート」という機能を使っていますので、普段C/C++コンパイラをCコンパイラとして使ってる人も、C++コンパイラとして使わなければなりません。STLをただ使うだけなら大して難しくはないので、C++をbetter Cとして使うのもよいかと思います。これ以後もそのような前提で説明します。よく分からないことがあったら掲示板で質問してください。 ※要するにCが解っている人向け※ STLの目的 STLとは、動的配列や双方向リンクリスト
本連載を初めて読む人へ:先行き不透明な時代をITエンジニアとして生き抜くためには、何が必要なのでしょうか。それを学ぶ1つの手段として、わたしたちはIT業界で活躍してきた人々の偉業を知ることが有効だと考えます。本連載では、IT業界を切り開いた117人の先駆者たちの姿を紹介します。普段は触れる機会の少ないIT業界の歴史を知り、より誇りを持って仕事に取り組む一助としていただければ幸いです。(編集部) 本連載は、2002年 ソフトバンク パブリッシング(現ソフトバンク クリエイティブ)刊行の書籍『IT業界の冒険者たち』を、著者である脇英世氏の許可を得て転載しており、内容は当時のものです。 ビアルネ・ストラウストラップ(Bjarne Stroustrup)―― AT&T研究所研究部門長 C++開発者 C++言語といえば、ビアルネ・ストラウストラップが有名である。1985年ごろ、最初にこの名前に出合っ
出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。記事の信頼性向上にご協力をお願いいたします。(2022年9月) テンプレートメタプログラミング(英: template metaprogramming)は、メタプログラミング技法の一種であり、コンパイラがテンプレートを使って一時的ソースコードを生成し、それを他のソースコードと結合してコンパイルする方式である。テンプレートが出力するものは、コンパイル時の定数、データ構造、関数定義などがある。テンプレートの利用は言わばコンパイル時の実行である。この技法は様々な言語で使われている(C++、D言語、Eiffel、Haskell、ML、XLなど)。 テンプレートメタプログラミングの構成要素[編集] メタプログラミング手法としてのテンプレート利用には2段階の操作が必要である。まずテンプレートを定義し、次にそれをインス
オンラインカジノゲームで遊んで時間を潰したいだけであれば、お気に入りのゲームがどんな手順で作られたのかなど、考えたこともないでしょう。しかし、どのゲームもすべてプログラミングから始まっており、プラットフォーム全体を動かすソフトウェアの作成から始まるのです。 プログラマーは、ユーザーが楽しく本格的なゲームをプレイできるよう、コードを設計し、グラフィックを制作しています。言ってみれば、プログラマーがいなければ、オンラインカジノゲームは存在しないのです!では、このプログラミングという作業がオンラインギャンブル業界にどんな影響を与えているのか見てみましょう。 ゲーミングソフトウェア パソコンの前に座ったり、スマホをいじったりしている時は、ゲームを作るためにどれだけの労力が注ぎ込まれているのかなど気にしないものです。しかし、家に居ながらにしてカジノゲームにアクセスすることができるのは、ゲーミングソフ
前回に引き続き、GoFのデザインパターン本(オブジェクト指向における再利用のためのデザインパターン)に載っているサンプルコードを読むためにC++を勉強してる。 今日のお題はテンプレートクラス。こいつを使うと、int型でもdouble型でも何でもOKなスタッククラス、みたいな感じで、汎用的な型を使用したクラスを定義できる。 早速、以下のページを参考にして試してみた。 C++編(言語解説) 第27章 テンプレートクラス #include <iostream> #include <string> using namespace std; // スタッククラス template <class T> class Stack { public: Stack(); bool isEmpty(); void push(T); T pop(); private: T items[100]; int coun
Boost (ブースト)とは、C++の先駆的な開発者のコミュニティ、およびそのコミュニティによって公開されているオープンソースのソフトウェアライブラリのことを指す。 概要[編集] コミュニティとしてのBoostはC++標準化委員会の委員により設立されており、現在でもその多くが構成員として留まっている。このような経緯もあり、BoostコミュニティはC++の標準化において大きな影響力を有している。実際に標準化委員会が発表した「TR1」の2/3以上がBoostライブラリを基にしている。Random, Regex, ThreadなどはいずれもC++11規格の標準ライブラリとして正式に導入・標準化されている。その後もOptionalやAnyなどがC++17規格で導入されており、影響を与え続けている。このことから、Boostは考案された新機能を標準化させる前の試験運用の場であるとも言える。 Boost
前回に引き続き、GoFのデザインパターン本(オブジェクト指向における再利用のためのデザインパターン)に載っているサンプルコードを読むためにC++を勉強してるよ。 今日は抽象クラスを使ってみる。抽象クラスってのは、実態がない形式的な関数を含むクラスのことだ。その関数のことをC++では純粋仮想関数って言うらしい。いわゆる抽象メソッドだね。 今回は絶対値を求めるメンバ関数を含むクラスを作る。まず始めに抽象クラスとして定義する。 #include <iostream> #include <cmath> using namespace std; // 抽象クラス class VirtualElement { public: // 絶対値関数 virtual double absolute() = 0; }; = 0ってつけると純粋仮想関数になる。ただしこのクラスは中身がないのでインスタンス化できない
前回に続いて、GoF本に載っているサンプルコードを読むためにC++を勉強してみる。GoF本ってのは「オブジェクト指向における再利用のためのデザインパターン」のことね。 今日はクラスの継承をやってみる。GoF本でもばんばん使われているので大事だ。参考にしたページは以下。 C++編(言語解説) 第8章 継承 C++編(言語解説) 第9章 オーバーライド C++の基礎 : 仮想関数 今回はR2クラス(2次元の座標平面)を親クラスとして作って、そいつを継承してComplex(複素数)クラスを作ってみることにする。 まずはR2クラスから。 #include <iostream> #include <sstream> #include <string> using namespace std; // 2次元の座標平面 class R2 { public: R2(double x, double y);
前回に引き続き、GoF本に載っているサンプルコードを読むためにC++を勉強してみる。GoF本ってのはオブジェクト指向における再利用のためのデザインパターンのことね。 今回はクラスの定義をやってみる。デザインパターンではクラスを多用する(というか、ほとんど全部クラス)なので大事だ。参考にしたページは以下。 C++編(言語解説) 第5章 クラス構造 C++編(言語解説) 第12章 new/delete まずは新しいクラスの例として複素数クラスを定義する。 #include <cmath> // 複素数クラスの宣言 class Complex { public: // ここはpublic Complex(double real, double imaginary); // コンストラクタ ~Complex(); // デストラクタ // メンバ関数(メソッド) double absolute()
GoF本を読んでいる。 オブジェクト指向における再利用のためのデザインパターン 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹出版社/メーカー: ソフトバンククリエイティブ発売日: 1999/10メディア: 単行本購入: 17人 クリック: 648回この商品を含むブログ (199件) を見る さすがだ、めちゃ参考になる。けど、サンプルコードがC++で書いてあるんだよ。なんてこった、そんな変な言語知らないよ。 と言うわけで、GoF本のサンプルを読むためにちょっとC++をやってみることにした。参考にしたサイトは以下。 C++編(言語解説) まずはHello World。 #include <iostream> using names
C向けのライブラリのコードをながめていたらちょくちょく以下のようなコードをみる. #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* Cのコードがたくさん */ #ifdef __cplusplus } #endif /* __cplusplus */ なんだろうと思って調べてみたら. __cplusplus g++でコンパイルされるとdefineされるマクロ extern "C" { /* Cのコード */ } ブレースでかこまれた範囲で,リンカでの識別子の扱い方がCスタイルになる らしい."この範囲のコードはCで書かれてるから,g++でコンパイルするときはCだとおもってよろしくしてあげてね"ってことみたい. Cで書かれたライブラリはCで使われることもC++で使われることもあるから,こういうコードでうまくその差を吸収して
科学者とあたまを書いたひとだけれども、この名前どっかで聞いた事があるなと思ったら, 昨日劇団青年座の人の講演で聞いたのだった。 「フユヒコ」という劇団青年座の公演が明日NHKで放送されるらしいです。冬彦ってのは寺田寅彦のペンネームらしい。 http://cgi4.nhk.or.jp/hensei/program/p.cgi?area=001&date=2008-12-12&ch=31&eid=9950 おもしろそうだから観てみようかな。 ところで小柴先生が同じような事を言っていたのを思い出した。このインタビューは面白い。 一流の理論家は、「自分の理論では、ここまでは使えるけれど、これから先は分からない」という適用限界をいつも意識している。ところが二流の理論家というのは、自分が名前を覚えた、あるいは、使った理論で何でもやれると思ってしまう。二流の理論家に困らされるのは、新しい実験計画が出てき
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く