C++

出典: へっぽこ実験ウィキ『八百科事典(アンサイクロペディア)』
移動: 案内, 検索
「祖は髭面の準聖人なり」
C++ について、Scott Meyers

C++とは、C言語という黒魔術言語からの派生として生まれた、(自称)高等黒魔術言語である。

目次

[編集] 概要

関わる者全てを、混沌と困惑と混迷の螺旋へと落とし込み、その長大な術式は術者の眼精疲労を誘引することマッハである。初学者向けに蛇足ながら具体例を示すと、僅か5センチにも満たない術式に対し、警告が2メートルにも及ぶことなどはザラである。かの大殺界における盟主、また、Linuxという原理主義組織における師を自認するLinus Torvaldsをして、C++は複雑すぎると言わしめたほどの高等言語なのである。それを踏まえ、近代における再評価を加味するとつまり、複雑すぎて使えないという、仇花とも言うべき本質が明らかになりつつある論調を無視することは出来ない。

しかしながら、C++の特性、独特の長所があるというのも一面の事実ではある。それは、術者が高度に言語を理解している限りにおいては、高度に最適化された術式を出力できる点にある。X箱等と呼称され親しまれている民生用の呪術再生装置においては、術式再生におけるキャパシティーが明確に存在するため、黒魔術を施術する上でさらに、黒魔術的、または悪魔的ともいうべき最適化を必要とするケースが多々見られる。この悪魔的な最適化を施せる術者がいてこそ、C++という黒魔術言語の本質を示威することができるのである。しかしながら逆の見方をすれば、C++により記述されたあらゆる術式は、これも布教のためと、最適化のために散っていった数々の殉教者の屍の上に成り立っているのである。

[編集] 歴史

[編集] 創生にまつわる陰謀

「かの聖人、自らの髪を用い忌み子C++とする」
C++ について、真実のモノリス

口伝が伝えるC++生誕は、悲惨な物であった。

髭面の準聖人として伝えられるBjarne Stroustrup (ピャー ストロストラップ 1950年12月30日-)はC++を出産するという奇跡を起こすにあたり、その全霊を傾けた。

その結果として生まれたのがC++であり、残ったものが若ハゲである。(当時、彼は32歳前後)

その頃ピャーは、電話を研究しているという体裁を持った、名前もそのままに電話研究所と呼ばれる、西側諸国による軍事技術研究施設に所属していた。 この奇跡により一時は、資本主義の豚が世界中の空を席巻することになるのではと恐慌一歩手前にまで至ったが、これを良しとしない、資本主義の豚に敵対する民兵組織の活動家がObjective-Cを生み出す。

しかし、このObjective-Cも後に、ジョブズを現人神とする林檎教により資本主義のコングロマリットに組み込まれる事となる。

結果だけを評すればそれはすべからく、資本主義の豚による悪しきマキャベリズムが結実した結果とも見えるが、その背景において東西冷戦下に在った両国を無視することは出来ず、検閲により削除資本の暗躍が検閲により削除る。 奇しくもこの両者の生誕は同年内に起こったものであり、その陰謀の深さを伺い知る事ができる。

[編集] 禁書の誕生

C++の歴史を大きく2つに分けるならば、「Modern C++ Design」著:Andrei Alexandrescu (アンドレイ アレキサンドレスク 誰も気にしない - ) という禁書の出版以前と以後とに分ける事が可能である。

この書籍の出版以前、C++は「より良きC」として認知され、正しく利用されていた。

しかしこの禁書に記述されていた物に民衆が出会った瞬間、それは爆発的なクソの山を生成するに至ったのだ。 その禁書には無から有を生み出す手法が、そこらへんの悪魔なら思わず失禁して逃げ出してしまうほど平易に、大衆や、かわいい犬どもにも理解できるよう解説してあった。

つまりは神の御技を、民衆どころか家猫までもが手に入れた事となったのだ。 この混乱と混沌こそが、Linus Torvalds師をして聖戦を躊躇させ、C++に対しては放任という立場を取らせた最も大きな理由である。

[編集] HelloWorldと変遷

C++は当初、構文自体が非常に複雑な物であったために、利用者に対し不親切な言語であるとの評を受けた。 これを改善するため生み出されたSTLと呼ばれる汎用ライブラリでは、コード内で顔文字を多用することを推奨し、見た目にもかわいらしいコーディング規約を生み出した。 これが、現時点における平均的なC++のHelloWorldである。

#include <iostream>

template<char O, bool =O == 'h'? '-' :O == 'w'? '=' :0>class _; 

template<char O>std::ostream&operator<<(std::ostream&lhs,_<O,0>*) {
	return lhs << O;
}

template<char O>std::ostream&operator<<(std::ostream&lhs, _<(O), 'o'>*) {
	return lhs<<(char)(O - '!' + '.' - '-' );
}

template<> std::ostream&operator<<<'~'>(std::ostream& m9,_<'~', 'o'>*) {
	return m9<<('m');
}

int main(int orz=3) {
	std::cout<<(_<'h'>*)0<<(_<'e'>*)0<<(_<'l'>*)0<<(_<'l'>*)0<<(_<'o'>*)0<<(_<'w',0>*)0<<(_<' '>*)0<<(_<'w'>*)0<<(_<'o'>*)0<<(_<'r'>*)0<<(_<'l'>*)0<<(_<'d'>*)0<<(_<'!'>*)0<<std::endl;
	return 0;
}

[編集] 五柱神とその解釈

C++の誕生と成長に大きく貢献し、その功績から信仰の対象になっている功労者を列挙する。

当然のことながら志半ばにして倒れた同志の数は多く、スワヒリ語等と並び、世界で最も危険な言語の1つとして挙げられる事もしばしばある。 その試練に打ち勝ち、散っていった同志の功績をオープンソースの名の下に自らの功績として搾取した者だけが神となれる。

Bjarne Stroustrup (ピャー ストロストラップ 1950年12月30日 - )
創造主。髭面の準聖人。テキサスにて若き信徒らに教鞭を取る。
もうろくしている。
Andrei Alexandrescu (アンドレイ アレキサンドレスク 誰も気にしない - )
禁書を執筆する。D言語に浮気中。スコットとの確執が原因とも。
全てのローマ人は検閲により削除
Scott Meyers(スコット メイヤーズ 誰も気にしない - )
膨大な量のC++~するべからず集を編纂する。
その功績以上に、それほど大量の禁忌が有った事に世界は困惑した。
Richard Stallman(リチャード ストールマン 1953年3月16日 - )
源氏名:Saint Ignucius(聖イグヌチウス)
髭面の聖人。GCCと呼ばれる一群の呪術構築装置を作る。
その中にC++のサポートが含まれていたが、当初は高度すぎて誰も、どのように動いているのか、なぜ動いているのかすら理解できなかった。後にこれは、ストールマンが故意に難読化していたためと、本人の伝より露見する。これを皮切りにGCCを見限り、LLVMと呼ばれる新鋭の構築装置を利用する教団も増えており、その神威はちょっち落ち目かもしんない。
Harb Sutter (ハーブ サター 誰も気にしない - )
髭面の求道者。
C++なぞなぞ集を編纂する。この書籍は当初、幼児向けの冊子という体裁をとっていた。
そのため焚書等の難を逃れるも、いわゆる、大きなお友達問題からは逃れえず、その購読者層の年齢分布は若干広い。
このシリーズは長寿作であり、シリーズ合計で3クールが作られた。

参考:真実のモノリスに刻まれた、五柱神を表すコード。 左から五柱神と、それに順ずる聖人達が描かれている。

int main() {
     return 'o' ^0^ -~- -0- ~-~ +0+ 0-0 *0* 0*0;
}

[編集] 教義的な特色

[編集] テンプレート

クソ山の王。あるいはクソを聳え立たせる物の意。(出典:Modern C++ Design)

禁書によりその存在が広く認知されるに至り、これはC++の教義における最も特徴的な物であると言われるまでに至った。 その実は、マクロに多少の毛が生えたようなものであり、寝マクロと大差無いというのが近代的な解釈である。 これを使いこなすためには無限の忍耐と高度に鍛えられた指先、また、連続数十時間にも及ぶ苦行に耐えうる強靭な肉体を要する。

[編集] マルチパラダイム

C++はその長い歴史の中で、他の様々な呪術体系の特徴を取り込んできた。 しかし、そのどれもがすべからく中途半端な形で取り込まれたため、「C++はここが優れている」という議論以前に、「C++はここがクソだ」という議論が常に先行する。

[編集] 多重継承

悪しき習慣、諸悪の根源、使えない、クソ、豚等、およそ人類に考えられうる全ての罵倒を用い表される禁忌。 ダイヤモンドを錬成し、罪に問われ朽ちていった愚者は数知れない。

「これを語る事あたわず」
多重継承 について、まつも検閲により削除

前世紀に委譲と呼ばれる教義との間でその優劣をめぐり、宗教戦争が勃発した。 最終的に委譲を担いでいた軽量言語派が勝利を収める事になるが、その勝利にはP言語系と呼ばれる武闘派組織の暗躍があった。 この聖戦の後、多重継承は邪教の教義であるとの指定を受け、語ることすらも禁忌とされている。

[編集] STL

テンプレートを変質的なほど執拗に駆使し生み出された汎用術式。 あまりに高度または猥雑過ぎて、ブラックボックス化しており、 全容を把握している者は最早、存在しないのではないかと噂されている。 これにより配列への要素追加等が可能になる。

[編集] boost

ピャーを筆頭とする選ばれし人々により作られた秘密結社において祝福された近代汎用術式。 初学者がこれを使用することは比較的容易であるが、理解しようとしてはならない。

また、この中にはspiritと呼ばれる汎用魂魄解析機が含まれている。 これは極東における土着信仰の教義的概念、気やカルマ、霊魂といった思想を積極的に取り入れた上で作られており、 この作者はすでに邪気眼を開眼しているのではないかとの疑惑が持たれている。

[編集] C++11

前千年紀の終わりにあたり、約束されしC++としてピャーにより祝福される。 boostの成果をSTLに取り込む事と、関数型言語と呼ばれる呪術体系における奥義ラムダをC++に取り入れること等が主な目的であった。 このラムダの成就は困難を極めたが、2つ目の巨人Googleの力を借りた若い学徒により成される。 その他にも難解かつ強力な術式(右辺値参照・ムーブコンストラクタ)が経典に追加された。 学習や指導が簡単になるように考えられたらしいが、それは熟練術者にのみに適用される。 要は経典がさらにクソ分厚くなってしまったのだ。

[編集] C++/CLI

全く異なる魔術形態である.NET白魔術形態を無理やりC++に押し込んだものである。 窓教における絶対神ビルゲイツにより祝福され誕生した.NET白魔術形態に属する。しかし実態は黒魔術と白魔術の異なる魔術形態を一つの魔術言語に押し込んだものであり、結果非同一性4次元空間を創造しもはや神ですら全容をつかめないのでは無いかと言い伝えられている言語である。その混沌はたとえC++の高等術者であろうともいとも簡単に飲み込んで再起不能にし打ちのめすであろう。 高度に最適化すれば高速な白魔術式を出力する事ができると言われているがそもそも神ですらまともに扱えないのでその真偽は不明である。 C++/CLIに関する経典は黒魔術初学者でも詠唱できると謳っているものも存在するが絶対に詠唱してはならない、次元の迫間に落ちて二度と現世に戻ってこれなくなる。 白魔術を扱いたいならVBやC#などの大衆向けの言語が存在するので悪いことは言わないからそちらを使った方が自分自身の保身につながるであろう。

[編集] 初学者に向けて

C++とは忌み子であり仇花でありレガシーでありそしてやはり、そこから生み出される物もまた、クソの山になりがちであるというのはどうやら確からしい。 学習という側面においても、数百ページにも及ぶ経典を何巻も読破し、膨大な量の術式を自ら書き、疲れ、疲れ果て、目は乾き、指は震え、他の言語に浮気をし、その素晴らしさに震え、打ちのめされ、しかしまた不屈の怨念によりC++の場に舞い戻りというような試練を乗り越えることでようやく、最低限は使えるという段階になるのである。

この段階でboostを理解しようとしてはならない。発狂する。 手っ取り早く術式記述法を会得するのであればboostを会得するよりもJAVA言語を会得した方がその身を滅ぼさずにすむであろう。

しかしそのような過酷な修行を経て完成されたC++の術者は強い。クソ強い。 如何なるデスマーチを前にしても微動だにせず、不退転の覇気を見せるのである。 なぜなら、その学習自体、それ自体が既にデスマーチであるからだ。 実利を得るためにC++黒魔術を学習する事は至難であり、間違った動機と言える。正しい動機は「(自称)最強魔導師になりたいから」である。

注釈:闇プログラマーという都市伝説に感化され、C++闇の軍団への就職を目指そうという諸子に置かれては、それを幻想であると知らせておくことは不可欠であるといえる。 事実であるか否かという以前に、伝説に語られるC++闇の軍団への門戸は極めて狭き物、真に選ばれし者にのみ開かれるといった類の物であり、事実上存在しないものと認識して問題無い。

[編集] 習熟曲線について

通常の魔術習得の習熟曲線は、修行とともに右肩上がりとなり、自身の技量進歩を実感しつつ更なる学習意欲に繋がってゆくものである。 しかし、C++に限っては特異な習熟曲線を描く。

まず経典の分厚さが圧倒的な量で、習得速度は恐ろしく遅い。なんとか経典を読破しても知識は断片化しやすい。未熟な点の知識が必死に手を伸ばし、いつの日か点が線として繋がった瞬間、習熟曲線は猛烈な跳ね上がりを見せる。・・・ここまでは良いのだが、恐ろしいことに、なんとこの後曲線がどん底に落ち、復活したり、ふらふらしたりと、「クソ曲線」を描く特性がある。

間違って習得していた!、ウホッ知らなかった!、分かったと思っていたのに実は分かってなかった! など紆余曲折を経て、途中でついつい禁断の「中途半端なC++黒魔術」を詠唱してしまい、自身の術式に足をすくわれて地獄の苦しみの後絶命することもある。(他人を巻き込まぬように)

このような事を繰り返し続け、クソまみれになりながら、無常にも時は流れていくのであった。

[編集] 開発環境について

C++の呪術開発環境は数多存在し、乱立する様クソ記事の如しである。

およそC++をどうこうすることが出来ない環境というのは最早珍しく、その環境ごとに独自の開発環境があるという状況も珍しい物ではない。 それほどの混沌を極める中ではあるが、神域にすら達するかと思われるほど完成された三種の神器、screen omake vim に言及しておくべきだろう。

これらさえ用意できれば、これでボクも一流術者だ!と胸を張れる事必至ではあるが、それは自称であり無い胸はやはり無いのであるという事実を忘れてはならない。

蛇足ながらEmacsはクソ[要出典]であ検閲により削除なに言っ検閲により削除マジキチw検閲により削除ぇwWwwww

↑こいつバ検閲により削除

それなりに訓練されたC++の術者は必然的に、超並列分散術式構築という奥義を身に付ける事になる。

禁書に記された技を駆使する事と、術式構築に要する時間が幾何級数的に増大することは等価であった。このトレードオフは長らくC++の術者を悩ませてきたが、近年におけるクラウド等と軟弱な言葉で表現される環境の普及は、複数のVPSを借り上げ、distccと呼ばれる術式構築装置を用いた超並列分散構築という奥義の普及を促した。

この奥義を身につけた術者は、それも持たない術者と比べ術式展開能力において数倍のアドバンテージを得ることになり、チートとして扱うべきなのではというスレッドを日々、量産している。この奥義の習得を夢見ている求道者においては蛇足ながら、「OpenVZ系はやめておけ」という、その道へと散っていった先人達の言葉をここに記しておくべきであろう。


[編集] 関連項目


NOW LOADING .... Loading bar blue.gif
C++の執筆者をロード中です。しばらくお待ちください。
待ちきれない場合は自分で執筆してください。 (Portal:スタブ)
個人用ツール
View and edit namespaces data

変種
操作
案内
編集者向け
姉妹プロジェクト
ツールボックス
他の言語