最近のトラックバック

ウェブページ

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

他のアカウント

無料ブログはココログ

2018年9月21日 (金)

ヒトラーのプロバガンダと人々の心への影響

アドルフ・ヒトラーは有名であるが、何故有名か?が日本ではほとんど認知されていないように思う。

2013年に麻生副総理が「ナチスの手口に学んだら」発言をして話題になったが、そもそも「ナチスの手口」とはどのようなものだったのか?

追記: ここで、今の政権が実際にナチスの手口を使っていると主張するものではない、と強調しておかなければならない。それを言うと陰謀論になってしまう。そのようなことに関する証拠はブログ主は持っていない。

ブログ主が注目したのは、「我が闘争」に、ヒトラーが堂々と自らによる大衆の洗脳技法が書かれていたことである。ドイツではこの本の出版そのものが問題とされていた(もっともパブリックドメイン化やIT技術の進歩でこれを人目につかせないことは不可能)が、現実の理由はともかく、洗脳技術が書かれているという事実だけでも出版禁止を考慮するに十分である。一旦ヒトラーの手法が知られれば、それを応用・発展させようとする人々が出ることは避けられないだろう(これは推測だが。逆に、ヒトラーの手法に対抗するものを見出そうと死物狂いになる勢力もあったことはほとんど確実である。基本的人権の自然権的思想が戦後見直され、さらに国際的に人権を保護しようとする動きが急速に発展した。これはヒトラーの手法やそれに類似した手法への対抗の意味も大きい)。

従って、どちらにしても国民はこの手法を知る必用がある。似たような手口に騙されない責任が人間にはあるからだ。第2時世界大戦の悲劇を繰り返してはならない。

様々な意味でヒトラーは恐ろしいが、ブログ主が一番恐るべきものとみているのが「多数決で合法的に独裁者になった」ことである。そのためには、国民に独裁制を受け入れさせなければならない。そのための手法がナチスの手口で重要な役目を果たしている。

手法のうち大事なものはプロバガンダである。ブログ主はヒトラーの「我が闘争」第6章の政治宣伝の部分が興味深かった。技法の片鱗に過ぎないがおさらいしてみたい。また、ヒトラーが群衆心理学を学んで、それを応用していたことも確認する。

これを「単なる切り取りだ」というなら「そのとおり」とブログ主は言う。ナチスの手法はこんな単純なものではないからである。しかし、何故ヒトラーが世界を震撼させたか?の理由の一つがこの普遍性である(群衆心理学という基礎があるので、国籍民族などを問わずに有効である)。

特徴 プロバガンダは目的ではなく手段である

ヒトラーは兵役についていた第1時世界大戦において、プロバガンダを「敵から学んだ」と述べている。

ヒトラー曰く。

オーストリアやドイツの漫画で、イギリス人を矮小化し嘲笑したことは全く間違いである。これでは、実際の戦いで相手の予想外の強さに直面したとき、うろたえ、騙されたと感じてしまうから。

他方、イギリスやアメリカは、自軍の兵たちにドイツ人を野蛮人、匈奴と思わせた。これは正しかった。兵たちは、相手は最初から手強いと教えられ、恐怖に直面する準備がされていたので、敵と対面したとき「確かに正しかった」と信念を強めた。

そもそも、ドイツでは宣伝はまったく行われなかったか、まずい方法で行われた。

ヒトラーによれば、第1に大事なことは、宣伝は目的ではなく手段であること。その認識がドイツ上層部になかった。戦いを勝利に導くものでなければならない。

宣伝が「正しい」とは効果的だったか否かで測るべきで、学問的な正しさではかるべきではない。

特徴2 プロバガンダは大衆に対して行われる。それは知的水準の最も低い者に合わせなければならない。

第2に大事なことは、宣伝は常に大衆に向けられるものであること。それが圧倒的多数派だからだ。

インテリは除外して構わない。

これは非常に大事な前提だと思う。多数決を得るためには多数者に支持されなければならないからである。そして、大衆は必ずしも知的ではない、それどころか「大衆は非常に知性は低いものである」という経験や観察、心理学などからの前提がある。相手の数が多い程、知的には水準を低めなければならないということだ。

「戦争貫徹のための宣伝のときのように、全民衆を効果圏に引き入れることが問題になるときには、知的に高い前提を避けるという注意はいくらしても十分ではない」p.237

とまで言っている。

従って、

特徴 2-1. プロバガンダは理性ではなく感情に訴える

必要があり、それが効果的である。

「(宣伝の課題は)その作用はいつもより多く感情に向かい、いわゆる知性に関しては大いに制限されねばならない。」上巻p.237

特徴 2-2. プロバガンダはその対象となる者たちのなかで知性的にもっとも低い者に合わせる。

「宣伝は常に大衆的なものでなければならず、その知的水準は、宣伝が目ざすべきものの中で最低級のものがわかる程度に調整すべきである。」上巻p.237

ヒトラーの演説は、しばしば内容が思想的に陳腐で深みがない、と馬鹿にされたが、それは意図的なものだったわけである。

「大衆の受容能力は非常に限られており、理解力は小さいが、忘却力は大きい」上巻p.238

特徴 2-3 物事を単純化せよ

また、知性が低いのだから、大衆に対しては、ものごとを複雑にしてはならない。それは大衆に受け入れられない。白黒はっきりさせる単純化が必要で効果的である。もちろん自分に有利な方向で。

我が闘争では石鹸のポスターの例が書いてある。

「たとえば、ある新しい石鹸を吹聴しようとしているポスターについて、そのさいまた他の石鹸も「良質」であると書いたらなら、人は何と言うだろう?
「人々は、これにはあきれてただ頭を横にふるしかしかたがないだろう。」上巻p.240

大衆に分からせるには0か100かでなければならないわけである。

「(宣伝は)真理を客観的に探求すべきではなく、絶えず自己に役立つようにしなければならない」上巻p.240

従って、ヒトラーによれば、ドイツがやったように戦争の責任に関しても「ドイツだけに責任があるわけではない」と論ずるのは根本的に誤りとなる。

「かえって実際には、ほんとうの経過はそうでなかったにしても、事実そうであったように、この責任をすべて敵に負わせるのが正しかったであろう。」上巻p.240

つまり、たとえ嘘でも「悪かったのは全部敵だ!」と断言するのが正しいわけである。宣伝の目的にかなっているからだ。

また、

特徴 2-3. スローガンは単純に、かつひたすら繰り返す

べきである。

「宣伝は短く制限し、これを絶えず繰り返すべきである。」p.242

「けれども宣伝は、鈍感な人々に間断なく新しい変化を提供することではなく、確信させるため、しかも大衆に確信させるためのものである。〜最も簡単な概念を何千回も繰り返すことだけが、結局覚えさせることができるのである。」p.243

スローガンの説明には様々方法で行わなければならないが、結論は必ず同じことに帰着させなければならない。

追記: 第6章ではないが、ヒトラーの技法で大事なことのひとつに、

「人間は決して経済のために一身を犠牲にはしない。ただ理想のために死ぬものだということである。上巻p.204

「お国のため」というような「崇高な理想」によって大衆は動くということになる。だから「それでお前の生活は楽になったか?」と言っても洗脳は解けない。

人間は「崇高な理想」を求める性質があるし、それは多分あるだろう。しかし得てして自分の人生に悲惨さを感じる人はそのような呼びかけに大きな魅力を感じる。多分「救われた」気分もあるのかもしれない。それを捨てることはまた惨めな人生に戻ることだからそう簡単には引き下がらない。

群衆心理学による基礎

ヒトラーは若いときから「扇動者は心理学者でなければならない」と心理学に興味を持っていた。ヒトラーの手法はその意味で心理学的に正しかったか否か?も問題にされねばならない。

言語学者の高田博行氏の「ヒトラー演説---熱狂の真実」で、ヒトラーはフランスのル・ボン(Gustave Le Bon)という心理学者の「群衆心理」を読んでいた。絵を売って生計を立てていた時期にウィーンの宮廷図書館を定期的に利用し、この本のドイツ語訳を読んでいたと指摘されている。

以下、ル・ボンの指摘を列挙する。

  • 群衆は「意思の強い人間の言葉なら何でもよく聞くものである」(これは意思が強いと見られることが大事だという意味であろう)。
  • 指導者が簡潔に「断言」しできるだけ同じ言葉で「繰り返し同じ言葉で」繰り返すことで、(とにかく、断言すること、繰り返すこと、が大事)
  • 繰り返した言葉が「威厳」を得て、「批判能力を麻痺」させ、群衆の中に「感染」していく。
  • 群衆の中の個人は「単に大勢の中にいるという事実だけで、一種抗し難い力を感じるようになり、(ここは大事。「自信」「誇り」「力強さ」「安心感」といった感情(少なくともそう思える感情)に支配されるということ)
  • 「暗示を受けやすく」、最終的には「自分で何も考えることができない機械人形となる」。(恐ろしい)
  • 思想は理性に訴えるのではなく、「極めて単純な形式で」
  • 感情に訴えることで大衆に受け入れられる。
  • 「自由」とか「平和」のような極めて定義が曖昧な言葉が、しばしば大きな影響力を持つ。(ヒトラーは初期は「平和」や「自由」という言葉を多用していた!)
  • 選挙においては「明確な意味をもたず、さまざまな願望を叶えるのに使える」決まり文句を新たに発見するような候補者が勝つ。
  • 選挙の候補者は敵陣営から攻撃される恐れのあるような明確な要項文書を作成してはならないが「口頭による要項はどんなに誇張してあってもかまわない。〜これらの誇大な表現は大きな効果を生むが、口で言ったからといって、それは将来を拘束しない」。刺激的で大げさな言葉は指導者にとって有利である。演説はどんなに威嚇的であっても威嚇的でありすぎることはない。
    (口頭で演説する分にはどんどん誇張してかまわない)
  • 演説においては、群衆の興味のありかを常に理解し、反応に合わせながら「さまざまに言葉を変えることが必要」である。(ヒトラーは、実際、メモを準備して演説をしていたが、聴衆の反応に合わせて臨機応変に演説していた。ラジオによる演説は暗示の効果が高いため重視したが、相手の反応が分からないためなかなか満足のいく演説ができなかった、と珍しく自己批判的になった。)
  • 物事の本質的なことはまったく変えずに、ただ言葉を変えるだけで、新しく素晴らしいものができた幻想を与えることができる。
  • 群衆が反感を持ってしまった事象について、その単語を変更することによって「用語を巧みに選択することによって」「最もいまわしいものでも受け入れさせることができる」天国を地獄と思わせることもできるし、最もみじめな状態を天国と思わせることもできる。
    ナチ党が政権を掌握したときの新名称の例:(言葉の表面と意味内容が反対)
    • 「起業家」→「従業員の指導者」
    • 「独裁」→「より高次の民主主義」
    • 「戦争準備」→「平和の確保」

このように見ると、ヒトラーのプロバガンダは群集心理学の基礎に基づく普遍的な性格をもっていたことが分かる。(群衆心理学のみが基礎ではないが、ここでは省略する)。

2018年4月23日 (月)

超準的な自然数が必ずある集合論でBool値モデルとかやってみる

追記: 恥を晒すこともなかろうと一旦記事非公開にしましたが、「己の過ちをなかったことにするのは日本人の悪い癖だから、そのままにしておくべき」という意見をいただいたので復活させます。

以前、ZFまたはZFCに公理を追加してωに必ず超準的な自然数が存在するという条件をつけられることがわかった。とはいえ、これは超準解析の入門書の最初の方に出てくる話を集合論の言葉に置き換えただけなので、自明の話である。

言語として、2項関係記号∈と、定数記号νを持つとし、公理系としては

ZFC

に次の可算無限個の公理を付け加える。

Λω: ν∈ω

Λ(0): 0∈ν

Λ(1): 0+1∈ν

Λ(2):0+1+1∈ν

Λ(3):0+1+1+1∈ν

・・・

これは公理図式の形ではないが、帰納的に定義された公理系の条件は満たしている。

定数0、ωなどは書き換えることで∈のみの論理式で表すことも容易である。

この追加された閉論理式の集まりをΛとすると、たとえばZFC +Λは、ωに超準的な自然数νが必ずあるという条件がついたZFCとなる。

このような公理系を考えた理由は、こうすると、基礎の公理があるにもかかわらず、

ν∋ν-1∋ν-2∋ν-3∋・・・

という降下列は有限回で終わることはない、というパラドックスを作るためであった。特に大した話ではない。体系の外から見た場合と中から見た場合の区別をつければよい。

集合論においてMが集合論のモデルと言った場合に、普通はMの所属関係はV={x|x=x}の∈をM×Mに制限したもの(∈モデル)にする。(さらに推移的の条件をつけるのが普通)。

∈モデルでは、ωに超準元を持つことはできない。・・・が、まったく不可能というわけでもなさそうである。
別に何か数学に新しいものを追加する、などという気はないが、自分のための頭の体操としてZFC+Λにおいて強制法(Bool値モデル)を考えてみる。

ひとつの考え方は、強制法で「可算で推移的なモデルM」と言う時は、実は前提となる公理系の十分多くの有限個の公理を満たすモデルを言っていることだ。

Λが病的になるのはすべてを満たすモデルを考える場合なので、有限個の公理を満たすだけならばνは(十分大きな)自然数のひとつにすぎない。これは議論に影響を与えないのでΛは無視できる。

もうひとつの考え方として、Vが最初から超準的な自然数を持っている場合を考えることだ。

そこで、Vが満たす集合論としてZFC+Λを採用してみる。V |= ZFC+Λ。

Λと強制法の話は別の話なので本質的には議論は変わらない筈だが、何か病的なことが出てくるかもしれない。

ひとつ注意すべきことは、Vには「本物でない」有限が必ず含まれることが「保障」されることである。もしかしたら、体系の外から見たら非可算無限個の自然数があるかもしれない。

あと、本物の論理式をVの中にコード化するときの問題がある。ZFC+Λをコード化するとV内ではνは自然数のひとつにすぎないのでΛ(ν)の公理(これは本物の公理ではない)が含まれる。これは0に+1を「ν回」適用した項がνの元であるということを意味する。ところが自然数の加法の再帰的定義によりこれは、ν∈νと同等となる。これは基礎の公理と矛盾するので、ZFC+Λをコード化するとV内では「この体系は矛盾している」という結果が出ることを意味する。(これはZFC+Λが矛盾していることを証明はしない。実際、ZFCが無矛盾ならばZFC+Λも無矛盾である)。

基礎の公理があるため、集合の∈無限降下列は存在しない。必ず有限回のうちに空集合で終わる。・・・が、この「有限回」は本物の有限とは限らない。Vの中の自然数回である。従って、体系の外から見ると、無限∈降下列のように見える場合があることが保障される。

言語に定数記号νが入っているので、論理式の絶対性の定義が影響する。νを含まない論理式については問題ないが、含む場合はνはV内のνと同じとしなければならなくなる(ここら辺がこの公理系の美しくないところである。νは存在すれば無数にある無限大自然数のひとつにすぎないので、これを定数記号でひとつ特別扱いするというのは実に美しくない。こういうことは後で面倒を引き起こすことが多い)。

Bool値モデルを考えてみる。

cBa(完備ブール代数)Bに対し、B-name全体V^B の構成の仕方は同じ。ただし、注意すべきことはωの中にνという無限大自然数が入っているため、順序数全体のクラスOnの構造は普通に期待されるものと変わっていることである。

問題になりそうな定理がひとつ見つかった。

定理。MをZFC+Λの十分に多くの有限個の公理を満たす推移的な可算∈モデルとする。このとき、任意の半順序集合P∈Mに対してP-genericが存在する。

この定理は成り立つか?

この定理の中の「有限個」は本物の有限である。外から見ても有限でなければならない。しかし、可算モデルの「可算」はどうか?MはV内にあるので、この「可算」は可算濃度の集合という意味になる。ところが、体系の外から見たら非可算無限個の自然数がVにあるかもしれないのである。しかし、体系の外でも可算でないと証明に困る。

このことは、普通のブール値モデルの議論においても暗黙のうちに、ωの元を列挙した場合、体系の外側から見ても可算個の元があることを仮定していることを示している。暗黙の了解がひとつ見つかった。

まあ、ZFC+Λにおいてもωの元を外から見ても可算個にすることは不可能ではない(筈)なので、その仮定があれば問題はない。ただし、この場合、νの元を体系の外側から見た場合は可算無限個の元があることになる。

追記:これは私の勘違いだ(おそらく)。この定理の証明は集合論の中で行われるので、可算無限集合が体系の外から見てどう見えるか?は関係ない。通常の議論を集合論の中で行えば問題ない(たぶん)。そもそも、いわゆる有限の立場で「本物の可算無限」など言うのはナンセンスである。このような議論をどうしてもしたければ、超準解析の手法のように、標準的な集合論と超準的な集合論を同じ土俵に置いて、相互の関係がどうなっているか?を考察できるような枠組みを作ることが必要である。まだ、「超数学的議論」の意味が私にはわかっていない。

非可算無限個の自然数があった場合はどうなるか? ちょっと考える。

もしかしたら続くかもしれないし、続かないかもしれない。

こういうことは集合論の超準的な話と標準的な話をすり合わせてはじめてほんの少しでも面白い結果が出るものだから超準的なものだけをにらんでもまず大した話にはならないだろう。

たとえばνは本物の自然数をすべて含む。通常のブール値モデルの話では、たとえば標準的なω×ωの有限部分集合から2への写像全体からなる順序集合を考えるなどをする。しかし、νは標準的なωをすべて含むのでν×νから2への部分写像はこれを含むはずである。しかし、超準的なZFC+Λではνは有限順序数なので体系内では単なる有限ブール代数になり自明な結果になりそうだ。これを標準的な体系から見たら何が起こるか?とかをできたら確かめてみたい。

2017年9月 1日 (金)

ナチスの手口が使われているのではないか?という「陰謀論的」思考は必要だ。

どうも、日本人の多くはナチスの脅威について過小評価しすぎるようだ。

アソウ副総理は「ナチスの手口に学んだらどうか」と失言し、学校の教材にヒトラーの「我が闘争」を用いることが可能とか、堀江氏がTVでヒトラーによく似た人物の描かれているTシャツを着たり。最近ではまた麻生副総理がナチスを引き合いに出して「いくら動機が正しくても、結果が悪ければ駄目」とか発言した。

世界、特に自由主義陣営にとってはこれは看過できない問題だろう。

第2時世界大戦直後から、#基本的人権 や #立憲主義 #国民主権 などの概念が急速に進化した。以前からこれらの概念は発達していたのだが、ナチズムやファシズムの台頭のために考えなおさざるを得なくなったのだ。

アドルフ・ヒトラーは、当時世界で最も民主的と言われたワイマール憲法下で(少なくとも見かけ上は)「合法的に」独裁者になった。

つまり、「形式的な合法性」では民主主義国を維持できないことが証明されてしまったのだ。これは世界を震撼させるに十分だ。

近代的な基本的人権はロックやルソーなどの思想を元に行われた18世紀末の市民革命からだろう。そこでは、自然権としての考えが色濃くあった。

しかし、19世紀には自然権的な思想は衰退していった。ヨーロッパ諸国にも人権保障を含む憲法が普及したがどちらかというと人権より「国民権」に近いものだった(外見的人権)。これは

  1. 合理主義思想や社会主義思想が発達し、自然権思想にとってかわったこと、
  2. 議会制が成立して議会(法律)による権利の保障という考え方が有力になったこと、
  3. 法学の対象を実定法に限定して、自然法的なものや政治的なものを排除して実定法の論理的解明を狙いとする法実証主義が広まったこと

などによる。

ところがヒトラーはそれでは不十分であることを証明してしまったため、初期の自然権的な人権思想が見直されることになる。

基本的人権は「人間が人間であることに基づいて論理必然的に享有する権利」という見方が一般的になった。

また、従来の「法律による権利の保障」が「人権は法律によっても侵害されてはならない」という「法律からの保障」が強調されるようになった。

これは立憲主義の考え方そのものも大きく変わった事を意味する。

さらに、基本的人権の保障は、国家の国内法による保障だけでは不十分と、人権を国際的に保障する動きが活発になった。

(情報源:芦部「憲法」(第五版)pp.76−79)

ナチスの出現は世界全体の構造まで変化させてしまったのである。

2度とナチスの悲劇を繰り返してはならない、というのが世界の常識である。

これを理解しないのは犯罪的と見なされるだろう。

実際、現行日本国憲法にも「ナチスの悲劇を繰り返さない」ための智慧が盛り込まれている

国民主権の原理、基本的人権の保障と憲法がこれを根拠にしていること、立憲主義の明確化(国民から公権力への命令の形が含まれている)。

特に注意すべきは現行憲法の13条だろう。

すべて国民は、個人として尊重される。

で始まるこの条文は「現行憲法の中でもっとも重要な条文ひとつだけ取り上げるとしたらどれか?」という答えは第13条である、という程重要な条文である。(法の「形式的な意味」だけでは独裁者の出現は防げないので実質的意味も考えなければならない。この実質的意味を考えるとこの条文が最も重いことになる。)

これは個人の尊厳の原理とも言われる。(個人主義とも言われるが、これは日本では利己主義と混同されやすい。まったく違うものなのに嘆かわしい。)

これは新しい人権などの根拠にもなる大事なものだが、ナチズムに対抗する意味もある。個人の尊厳の対極は「全体主義」だからだ。全体主義に対抗する機能も持ち合わせている条文だと言える。

従って、日本国の国民が基本的人権、国民主権、立憲主義、憲法の仕組みなどを十分理解しているならば、第2のヒトラーの出現など怖れるに足らない。そんなものは排除する仕組みがあるのだから。

またナチスの悲劇の恐ろしさを国民が理解していれば、「ナチスの手口に学んだら」などと発言する政治家は一瞬で政治生命を絶たれる筈なので、そんな気は起こさない筈だ。

とはいえ、そのような発言をする政治家が現役でいられる国となると話は違ってくる

現在、自民党憲法改正草案(これが改憲案としてそのままならないにしても、この考え方で改憲案が出るだろう)では、最高法規の一番最初にあって人権保障および最高法規性の実質的根拠となる第97条も削られている

憲法の基本的人権保障の後退は、封印できた筈の第2のヒトラーの出現の可能性が出てくるということだ。

さらに、第13条の「個人として尊重」が「人として尊重」に変わっている!

indivisualとpersonでは大きな違いがある。この違いだけで憲法の性格が全体主義的になってしまう。さらに幸福追求権も狭まるおそれが強い。

そして、前文の「日本国民は」が「日本国は」に書き換えられ、草案102条によって国民に憲法尊守義務が課せられる、ということは立憲主義が破壊されるということだ。(Q&Aには立憲主義を否定するものではない、と書いてあるが、この条文があるだけで立憲主義は機能しなくなる)。

他にも、ナチスの悲劇を繰り返さない仕組みがほとんど全部破壊されている

この草案は公開されている。それなのに国民は無関心である。

そうなると、本当にナチスの手口は実行可能である。あまりに異常な出来事だ。

実際に実行されているか?という絶対的な証拠はない。しかし、こういう場合は最悪を想定するべきである。実際にはどうであろうとも、ナチスの手口は実行されている最中である、という「前提」で物事を考えることはこの異常事態では大事になってくる。

日本がナチスの悲劇を繰り返したりしたら、世界は日本を許さないだろうから。

2017年8月21日 (月)

自民党憲法改正草案の問題点 −− これは革命案であること

自民党憲法改正草案は自民党の憲法に関する考え方が現れている。憲法改正をするというときも、まったく同じ案ではないにしろ、考え方は変わらないだろう。

この草案は、憲法を全面的に書き換える形となっている。

憲法は最高法規であるので、日本のすべての法律、システム、裁判のやり方、警察の性質、施設のあり方、社会の仕組み、学校のあり方、すべての制度、その他日本のありとあらゆるものごとに大きな影響を及ぼす。つまり、日本という国をまったく別の国にしてしまうということだ。

つまり、これは革命案である。

これが問題だというなら対案を出せば良い、という声がよくきかれるが、革命をやらないという対案は何故出せないのか?

安全保障との関係

憲法改正の必要性に関して、国際環境の変化があげられている。

つまり安全保障上の問題だというのだ。

しかし、日本全体を変えてしまう案というものを実践することは、すべての制度などなどを憲法に適合するように変えなければならないのだから、大変な混乱が予想される。
どの程度の混乱になるかはまったく私には分からないが、治安も悪くなるだろうし、いつまで続くか分からない。分からないが最悪を想定すれば無政府状態になることも考えなければいけない。

その変化の大混乱の最中は日本は無防備状態になるおそれが強い。

何しろ、外敵がいなくとも日本が内部崩壊する可能性さえあるのだから。

大日本帝国憲法が現行の日本国憲法に変わったときは敗戦のときだ。このときは米国の進駐軍がある程度治安維持を行った。あまりよい歴史上の出来事ではなかったかもしれないが、無政府状態よりはまだ占領状態の方がましなので仕方がない。

今回の憲法改正での混乱で治安などの維持はうまく行えるのだろうか?

つまり、安全保障の問題で憲法全面改定をする、というのはあまりに危険で逆効果だということだ。

安全保障上の問題があるならば、憲法改正などできればやらない方がよいし、どうしても必要ならば必要最小限の改正(具体的には9条のみの改正だろう)にとどめて、現在の危機を乗り切るのが常識的なやり方だ。

そもそも、安全保障の問題があろうがなかろうが、日本国を全面的に変えてしまうような革命を何故行わなければならないのだろうか?

2017年8月 7日 (月)

ヒトラーTシャツの何が問題なのか? − ヒトラーは戦争反対の平和演説を実際にした

7月12日、NHKの生放送で、実業家の堀江貴文氏がヒトラー風の人物が「NO WAR」と言っているTシャツを着ていた。

これに対し、人権団体「サイモン・ウィーゼンタール・センター」(「ユダヤ人団体」と紹介されたし、確かにユダヤ系のようだから反ユダヤとも戦っているだろう。しかし、この表明は人権団体としての発言だ)が7月13日に表明 を出した。

“We note Japan Public TV’s apology, but we don’t need more apologies but basic education for the Japanese people about the veils of Nazism,” Cooper concluded.

同センターのエイブラハム・クーパー副所長は「これ以上謝罪は必要ない」「日本人の人々にはナチズムに関する基本的な教育が必要だ」と述べた。

これはかなり痛烈な言い方だ。

堀江氏はこのTシャツの人物はピースマークを付け、「NO WAR」と叫んでいるのだから「反戦」の意味にしか見えないだろうと反論した

しかし堀江氏のTシャツのヒトラーに似た人物はあまりに大きく描かれている。番組中は「NO WAR」という文字がほとんど見えない。センターも「反戦の意味だ」と言われても到底容認できるものではない、と言っているのだろう。

しかし、私はさらに大きな問題があるのではないか?と考える。

1933年5月16日、ルーズベルト米国大統領が軍縮会議の継続を求めるアピールを、四十四ヵ国の元首に送った。

すると翌日の17日に、ヒトラーは大平和演説 を行って「ドイツは、たとえ完全に成功する場合でも、ヨーロッパにおける軍事行動は その犠牲が利益よりもはるかに甚大であることを、よく知っている。」などと、戦争反対の雰囲気で演説を行った。

つまり、ヒトラーが「戦争反対」的なことを言ったのは史実であるから、風刺にもジョークにもならないのだ。

実は、この大平和演説をよく吟味すると、ナチスの進出をかえって楽にする内容が含まれていたが、平和的な雰囲気の演説のためにルーズベルトのアピールに賛同したものと各国もとらえ、ヒトラーを警戒していた勢力も警戒をゆるめた。ヒトラーの思う壺で世界中を騙したのだ。ヨーロッパ諸国としばらく休戦状態を保ちたかっただけだ。

1935年にも平和演説を行っている。

そもそも、ヒトラーは「我々は戦争をするのだ」などと演説した訳ではない。この平和演説に限らず、彼は「平和」という言葉を何度も何度も繰り返した。その他「自由」も使った。それらで民衆の支持を得ていたのだ。1935年、1036年に特に「平和」という言葉を多用した。高田博行「ヒトラー演説」p.189

その後、1938年以降からヒトラーは国民の心を戦争に誘導しはじめたのだ。マスコミに対して秘密演説で表明。同書p.202

そもそもサイモン・ウィーゼンタール・センターは2013年の麻生副総理の「ナチスの手口に学んだらどうか」発言に対して「一体どんな手口をナチスから学べると言うのか」と抗議している。

同センターは、「日本人は学んでいない。やはり日本人には教育が必要だ」と言っているのだ。

2017年6月30日 (金)

CとC++の違い−備忘

C++ は C言語の上位互換言語である、というのは迷信である。

非互換性について、忘れるといけないので知っていることを自分のためにメモしておく。

この記事は、思い出したり、何らかのことで分かったりした場合、断ることなく追加・修正する。

  • VisualStudio の Visual C++ では、ソースファイル名を拡張子を付けずに指定すると、デフォルトでC++の拡張子cppが自動的に付けられる。C言語のつもりでソースを書いても拡張子を指定しなければC++のソースとしてコンパイルされる。すると非互換性によっておかしなことになる可能性がある。VC++で純粋なC言語プログラムを書きたい場合は、ソースファイル名には明示的に拡張子「c」を付けて指定すること。

  • sizeof('A') は、C言語ではsizeof(int) と同じ値で、C++では1である。これは、'A' がC言語ではint型でC++ではchar型であることから生じる。

  • C言語では、void * 型のポインタは他の型のポインタに自動変換されるが、C++ではキャストが必要。C言語ではmalloc()関数の戻り値をキャストする必要はないが、C++ではキャストが必要になる。(可読性はまた別の話。)
    大きな影響として、C言語ではNULL マクロを ((void*)0) に展開できたが、C++ではこの展開はできない。よって、C++ では NULL は(ポインタと同じサイズの)整定数0 に展開されることがほとんど。

    • C++ではNULLなど忘れた方がよい。C++11以降なら nullptr を使え。そして、nullptr の実際の値が何であるかに依存しないコードを書け。(実際は値は0である処理系しか見たことがないが、C/C++の仕様ではそれは保障されていない。)例えば、ポインタ変数をオールビット0にすることで、これが空ポインタになる、などという仮定をするな。(例えば、ポインタを含む構造体をmemsetで0クリアすればポインタは空ポインタになる、という保障は仕様上ない。)

    • Visual C++では、ソースファイル名指定で拡張子を省略すると、C++としてコンパイルすることになるので NULL は0に展開される(ポインタサイズとintのサイズが同じ場合)。そのため、文字列終端の '\0'  に NULL マクロを使うなどの習慣ができてしまう傾向があるようだ(これを「NULL文字」とか呼ぶ習慣もあるのでこれをやってしまう人も多い)。NULLマクロはあくまで空ポインタを表すのでこれは不適当な使い方。ネットサーフィンで、main関数内で return NULL; というのを見たことがある。純粋なC言語プログラムを書きたい場合は、ソースファイル名に拡張子「.c」を明示すれば NULL は ((void*)0) に展開されるので、このような使い方には警告が出る。C++ソースを書くなら nullptr を使うべき。
  • const int xxxx =10; がトップレベルで書かれていた場合、C言語ではxxxxは外部リンケージでC++では内部リンケージとなる。複数のプログラム単位でこれが書かれていた場合、C言語では重複定義のリンケージエラーとなるが、C++では何の問題もない。

  • C/C++両方で、char型は符号付きか符号無しかは処理系依存(ついでに1バイトのビット数が8である保障も仕様にはない)。コンパイルオプションで切り替えることができる場合が多い。ただし、C言語では char 型はsigned char か unsigned char のどちらかと一致するが、C++ではchar型、signed char型、unsigned char 型はすべて異なった型。

  • const の意味はC言語とC++言語では異る。
  • C言語では main 関数の直接・間接的な再帰的呼び出しができるが、C++では禁止されている。main関数のアドレス取得もC++では禁止。

  • C言語では int f(); は関数fの前方参照だが、C++では引数0個のプロトタイプ宣言。
    もし、純粋なC++言語で書かれたヘッダーファイル foo.h に関数の前方参照が入っていた場合、C++ソース内で
    extern "C"{
    #include "foo.h"
    }
    とした場合、関数の前方参照はプロトタイプとして認識されるので、意味が変わることがある。

  • C言語では、ブロックの外側からブロック内部にgotoすることは許されているが、C++ではコンストラクタが動かないといけないクラスのインスタンスがブロック内の局所変数で宣言or定義されている場合、gotoは禁止される。
    多重ループの外から中にgotoなどそもそもやるべきではないのだけれど。
    ちなみに、switch文のcase もgotoと類似のものなので、この制限を受ける。この場合も、そもそも意味的にやってはいけない代物。
  • main 関数の argv は、C。言語では仕様に「argvの内容は変更可能でなければならない」とあるが、C++では、標準的な使い方の宣言で argv の型にconstが付いていないことで、同じことを表す。どっちにしても、argvが変更可能というのは素人には怖い。変更可能と書いてあるだけで argv の内部構造を知る標準的手段がない。argv[i] の文字列を長く変更したいときの最大バッファ長を知ることもできない。それ以前に、argv[0],argv[1],argv[2],... がこの順序でメモリに並んでいる保障もない。
  • C++言語には標準の型として bool 型があるが、元々のCにはない。C99でやっと<stdbool.h> をincludeすると bool型を使えるようになった(本体は _Bool 型)。C言語では boolは _Boolを表すマクロとして定義することが多く、C++言語では _Bool が bool を表すマクロとして定義することが多い。どちらにしても bool 型の変数はきちんと初期化しないと、true でも false でもないゴミが入ってしまって混乱することがあるので、必ず初期化しないと危険。
  • C言語では struct xxx や union uuu を作った場合、変数などの宣言や定義では struct, union は省略できない。C++では省略できる。従って C言語では
    struct xxx xxx; とxxxという変数を宣言・定義できるが(好ましくはない)、C++ではできない。
  • C言語では構造体の最初のメンバのアドレスと構造体自身のアドレスは一致するが、C++では「余計なこと」(Cではない機能を使う)をするとその保障はなくなる。
  • C/C++では標準の &&、||、「,」(コンマ演算子)のように評価順が決まっているものがあるが、これらの演算子のオーバーロードをすると評価順は決まらなくなる。
  • キーワードは識別子として使えないが、C++のキーワードは多いので注意。final など、キーワードではないが特別の意味を保つ名前もあるのでそれらも識別子として使わない方がいい。また、演算子の代替表現(and,or,not,xor,and_eq,or_eq,not_eq,xor_eq,compl,bitand,bitor)も使えない。C/C++両方で、下線で始まり次が大文字の名前、どの部分でも下線が連続している名前、下線で始まるグローバル変数は使ってはいけない。

2017年6月28日 (水)

もし、俺の親父のようなタイプの人間が権力持ったら・・・

私は精神的虐待を受けて育った。

父の性質は次のようなものだった。

  1. 自分の考えと異る考えの人間は「悪人」か「駄目な人」であって、絶対に認めなかった。
  2. 何か問題があると、それは必ず他人が悪い。それは一貫していた。朝から晩まで人の悪口を言い続けた。TVに向かっても罵倒し続けた。母にも「馬鹿女〜、馬鹿女〜、馬鹿女ったら馬鹿女〜」など毎日罵倒した。電気料金が思ってたより高かった、というときがあったが、「これは電力会社が不正をしている」と信じ、何度も電力会社にクレームを付け、会社が検査の機械を取り付けて「やはり漏電などはありませんよ」と説明しても「あんたらが悪さをしてることは分かっている。料金を返せ」と怒鳴るだけだった。
  3. 何かあっても「責任を取る」ということは絶対しなかった。
  4. 人に謝ることは絶対にできなかった。自分の非は絶対に認められなかった。
  5. 子供には絶対服従を暗黙のうちに要求したが、言うことがころころ変わったので服従不可能だった。高校ぐらいまでは洗脳されていたので、親には絶対服従しなければならないと思い込んでいたが、不可能だったので自分には価値がないという信念が刷り込まれていた。
  6. 「男の約束」というのをやることもあるが、それは相手が絶対に約束を破らないという意味だった。ある人と「男の約束」をして握手までかわして、30分後に破ったところを見たことがある。
  7. それでいて、自分は正義の人間だと信じていた。

親父の生い立ちが少しずつわかってくると、親父も祖父に虐待を受けていたことが分かった。(母に母の問題もあったがややこしいのでここでは書けない。)

中学生の頃だろうか。親父は自転車でプールに俺を連れて行く習慣があった。兄弟もいたのだが、他の兄弟はうまく距離をとっていたので、常に俺と親父二人だった。辛かった。途中にかなり急な長い坂道があった。とはいえバスも通る道ではあるが。行きはまだ登りなので、ひたすら頑張って登るのだが、帰りの下りが問題だった。父は自転車でノーブレーキで下まで滑走するのが快感で大好きだった。そして俺にもそれをやるように無言で強制した。これは怖かったのでどうしても父より遅れた。自動車道である、さらに坂道の下は二股に分かれていた。つまり、自動車がわんさか通る道に坂の上から自転車が2台時間差でノーブレーキで斜めに突っ切ることになる。下手したら事故を起こして死ぬかもしれないし、もっと悪いことに他人を死なせたかもしれない。幸運なことにそうはならなかったが。
ある日、それをやっていたら白バイが付いてきて俺に注意した。父は既に先に降りていたので白バイは気づかなかったらしい。親父は戻ってきて俺を怒鳴りつけた。

まあ、手のひら返しは日常だ。

家は地獄だった。しかし、それでも被害が家庭内ですんだのは、父に「権力」がなかったからだ。もし、父に権力があったら、特に総理とかになったら大変なことになる。

この予想が外れればよいが。

2017年6月27日 (火)

「権利」と「義務」は取引か?−自民党改憲草案12条

自民党憲法改正草案 の12条

第12条(国民の責務)
 この憲法が国民に保障する自由及び権利は、国民の不断の努力により、保持されなければならない。国民は、これを濫用してはならず、自由及び権利には責任及び義務が伴うことを自覚し、常に公益及び公の秩序に反してはならない

は分かりにくい。

前半は現行12条と同じように見えるが、「(国民の責務)」と付け足され、全体的に国→国民という非立憲的な構造の文脈では意味が変わる可能性もあり得る。例えば、国民の自由や権利は国民が頑張って自力で守るもので国が保障するものではないのだ、という国の義務否定としても読めないことはない。とはいえ、それは脇に置いておく。

また、自民党改正草案では、現行の「公共の福祉」という言葉が「公益及び公の秩序」という言葉に置き換えられている。

自民党憲法改正草案Q&A では「公共の福祉」が分かりにくいから、と説明しているが「公共及び公の秩序」という言葉で分かりやすくなるわけではない。

ただ、Q&Aでは

憲法によって保障される基本的人権の制約は、人権相互の衝突の場合に限られるものではないことを明らかにした

とある。

Q&Aは法的拘束力はおそらくないのだろうが、改正草案の作者の考え方を表しているとみることはできる。つまり、人権の制限には人権の衝突以外の原理で行うこともあり得る、と作者は考えているのだろう。これは、大日本帝國憲法の法律の留保の復活に繋がるおそれがある。しかし、この人権の衝突以外の原理とは何だ?その根拠・正当性はどこから来るのか?

これも重大な問題だが、ここまでにしておく。

ここで問題にしたいのは

自由及び権利には責任及び義務が伴うことを自覚し、

の部分だ。

日本語が分かりにくいのだが、おそらく「自由」には「責任」が伴い、「権利」には「義務」が伴う、これは当然のことである、国民はこのことを自覚しなければならない、ということだろう。102条の国民の憲法尊守義務から、自覚するのは国民なのだろう。

ところで、そもそも「権利」には「義務」が伴う、というのは本当だろうか

例えば、AさんがBさんに(無利子で)10万円貸したとする。このときAさんは「Bさんから10万円返してもらう権利」が発生し、Bさんには「Aさんに10万円返す義務」が発生する。法学では債権債務と言うらしいが、常識で考えても大体分かる。

確かに、権利と義務が同時発生しているように見えるが、その「主体」が異る。

AさんはBさんからお金を返してもらう権利があるだけで義務はない。何故、お金を貸したことで義務が発生するのか?

同じ主体が権利と義務を「必ず」伴う、という話などどこにもない。

更に、基本的人権は「人であること」から出てくる権利であって、それに伴う義務はない(人権の固有性)。

同じ主体が権利と義務が伴って発生する場合といえば、モノを買うときがある。だから伴う「場合」もある。これは取引だ。

AさんがB商店から和菓子を(税は一旦無視する)千円で買ったとする。すると、Aさんは千円を払う義務と和菓子を渡してもらう権利が出る。

しかし、よく考えると、これは債権債務の関係が2組発生していることが分かる。「Aさんが千円払う義務」と「B商店が千円もらう権利」、および「B商店がAさんに和菓子を渡す義務」と「Aさんが和菓子を受け取る権利」だ。権利と義務2つづつ、合計4つ発生している。

取引の関係で、さらに問題なのは、取引が公正に行われるか?ということだ。一般に、取引の両者の力関係が同等ならば公正になる可能性は高いが、力関係に大きな差がある場合は力のある方が得をするような不当な取引になりやすい。公正さを保つためには、不公正な取引をさせない、更なる力が必要だ(法律、裁判所、警察などなど)。

しかし、国対国民で公正な取引は保障されるだろうか?

結局、「権利」には「義務」が伴う、という話には以下のような問題があることが分かる。

  1. 基本的人権の固有性を否定、すなわち基本的人権の否定につながるおそれ。

  2. 仮に、国民の権利が義務の見返りの取引関係だったとしても、その取引の公正さを担保するものは何もない。

これでは、国が一方的に国民から搾取する構図になるおそれが非常に高いと思う。

自由権、参政権、社会権−素人の備忘録

基本的人権は大きく3つに分類できる。

  1. 自由権---「国家からの自由」。国家が個人の領域に対して権力をカサに来て介入して個人の自由な意思決定と活動を侵害することはない、ということを保障する人権。人権保障の確立期から人権体系の中心をなしている重要な権利である。
    • 精神的自由権
      • 内面的な精神活動の権利(思想の自由、信仰の自由、学問研究の自由等)
      • 外面的な精神活動の権利(宗教的行為の自由、研究発表の自由、表現の自由等)
    • 経済的自由権
    • 人身(身体)の自由
    もちろん、これは「国家が必要ない」という意味ではない。
  2. 参政権---「国家への自由」。国民が国政に参加する権利。
  3. 社会権---「国家による自由」。社会的・経済的弱者が「人間に値する生活」を営むように、国家の積極的な配慮を求めることのできる20世紀以後に認められた権利。
    考察:正当な努力をしても不当な貧困等があれば、国家はそれを救済する努力の義務があることになる。現代民主主義国は「自己責任の国」ではない。働きたくても働けないなどの場合は国家が救済努力することを義務付ける。もちろん国民が弱者を叩いて憂さ晴らしをするような民度の国ではうまく機能しない。
    これは憲法の規定を直接の根拠として権利の実現を裁判所に請求することのできる具体的な権利ではない。具体的権利となるためには立法による裏付けが必要。(私はそのような立法を国民が要求する性格があるということ、と解釈している。)

自由は、原則としては他人の人権を侵害しない限り何をやってもよいと解するべきだろう。特に行動や表現に表さない段階では内心の自由は保証されるべきだ。(自由権はそのような自由を国家権力(やそれに準じる大きな権力)から侵害されない権利。)自由、自由、と連呼するが、これは私欲によって何でもかんでもやってよい、という意味の自由とはいえないだろう。ただ、自由を甘え・自分勝手の意味に捉える傾向がある。国家権力に対抗する自由という意味がすり替えられているのかもしれない。自由が大事なのは、むしろ、個人個人の才能を開花させる(学問でもスポーツでも芸術でも、どんな分野でも)ことによる社会全体の可能性を最大限に高め、それによって福祉も享有できるようになること。また、そもそも人間は健全な人間に成長するためには、個人の人格の尊重・権利・自由の保障が必要だということ。また、人間は間違いを侵すものだから、間違える自由も認められなければならない(その結果犯罪になるのは好ましくないので、制限は必要だが)、などの意味があるだろう。

もちろん、他人の人権を害する行動は禁じられなければならないので、権利・自由と言っても無制限に認められるわけではない。ただ、明治憲法下で法律の留保によって根拠なく人権を侵害される歴史があったため、公共の福祉という言葉の意味はできる限り人権のぶつかり合い以外の原理を使わないように吟味されている模様である。そもそも、国家の権威の源は国民に由来するのであるから、基本的人権を制限する原理としては他人の人権を侵害する場合しかあり得ない。それ以外の原理で制限するとなるとその根拠の由来がないからである。

政府によるBPO介入などは、精神的自由権の侵害と考えられる。二重の基準論では違憲審査のとき精神的自由権の審査は経済的自由権の審査より厳格に行われる原則がある。これは精神的自由権は非常に大事ということなので、その侵害は重大な問題と考える。

人権の相対性

基本的人権を分類する、というとき、杓子定規に(あるいはドグマ的に、絶対的なものとして)考えてはならない。例えばある権利が自由権、参政権、社会権のどれかにきっちり収まるなどと考えてはならない。

知る権利」は、情報を受け取ることが妨げられない、という自由権的な側面も持つが、情報の公開を請求するという社会権、国務請求権という側面ももつ。

教育を受ける権利生存権は社会権と見なされるが、同時に公権力によって不当に制限されてはならない、という自由権的な性格ももつ。

自由権と社会権との関係

自由権は国家が余計な干渉をするな、という思想・性質をもつが、社会権は国家に積極的に関わらせる思想・性質をもつ。このふたつは質が異る。

あまり、社会権の思想を重大視しすぎると、人権の分類が相対的でもあるし、自由権の領域にまで国家が介入するおそれがある。従って、現代においても「国家からの自由」が根本とすべきである。

考察:

自由権と社会権は共立可能ではあるが、ぶつかることも多いと思う。性質が全く異るのだから。気をつけなければならないのは、社会権が出たことで行政の役割が大きくなった、ということは行政府の権力も増大したということだ。もし、自由権と社会権がぶつかる場合は原則として自由権を優先しなければならない、ということになると思う(もちろん、原則論だから、現実の個々の事例では専門家が念入りに吟味し、憲法や法律の具体的意味を積み重ねる必要があるだろう。そこは素人の私では分からない)。
行政府の権力が相対的に強くなっている、ということは、国民はより賢くなり、自由権の価値を見失ってはならない。

芦部他「憲法」(第五版)pp.83-85 を主な情報源としている。

この教科書では、日本国憲法で保証されている人権は、

  1. 包括的基本権(13条)
  2. 法の下の平等(14条)
  3. 自由権
  4. 受益権(国務請求権)
  5. 参政権
  6. 社会権

としている。

2017年6月25日 (日)

C++ で自分自身の型を表す方法や、thisポインタの偽物作りとかやってみた

C++言語には、「自分自身の型」を表す標準的な記法がない。C++11 からは decltype(*this) で可能になったが、自由に使えるわけではない。例えば、メンバ関数の外側で

using ThisClass = decltype(*this) ;

などのような使い方はうまくできない。

また、Fooというクラスの中では decltype(*this) は Foo& 型なので、Foo型を使いたければ参照をはずさなければならない。

そこで、少々トリッキーでもよいからそのような方法を考えてみた。とは言っても、自分の力では無理なので、あちこち検索した結果の切り貼り組み合わせが主である。

プログラムの流れは 自分の型を取得 を参照した。

C++:自クラスの型にアクセスできる方法はないでしょうか?に、メンバ関数外で自分自身の型を表す名前を取得する方法として、static関数宣言を利用するトリックがあったので、これで一応できることが分かった。が、意味的におかしいので正統的な方法ではない。コンパイルエラーとすべきもの。
また、これが継承で伝播されるか?と一応試してみたが、予想通り伝播しなかった。

さらに、「thisポインタの偽物」を作ると const_cast や mutable を使わなくともconst性を弄れるので、それも追加した。これは自作。

これは、

class Foo{
....
private:
Foo* const m_mythis = this;
public:
Foo* const mythis(){ return m_mythis;}
....
};

ということをやると、const Foo x; としても、*(x.mythis()) はxを表すがconst性は持たない、という代物である。(g++では動いたが、コンパイラによって挙動が変わるかもしれない。)

これは簡単にできるので面白くなかったのだが、むしろこんな簡単にトリッキーなコードが書けるのか!と、C++の恐ろしさを感じた。
const_castやmutable が書いてあればまだ「const性を弄っているな」と分かるが、それなしでconst性が外せるのは、うっかりミスが怖い。

この偽物のthisを使うと「const な代入演算子」などが定義できる。

以下のコードは Ubuntu 上 g++ ver.4.8.4 (-std=c++11 オプション付き)で通った。

ただし、clang++ では「staticメンバ関数の宣言に this は使えませんよ!」と叱られてエラーとなる。

つまり、g++の型推論のチェックの甘さを利用したコードになるので、当然、このコードを実行した場合の結果にはまったく責任が取れないことになる。

ソース:

//thisclass-main.cpp
#include <iostream>

class Foo{
public:
virtual ~Foo() = default;
Foo(){}
Foo( const Foo& f ){ std::cout<< "コピーコンストラクタ" << std::endl;}
Foo( Foo&& f ){ std::cout<< "ムーブコンストラクタ" << std::endl;}
Foo& operator=( const Foo& f ){
std::cout << "代入" << std::endl;
return *this;
}
Foo& operator=( Foo&& f ){
std::cout << "ムーブ代入" << std::endl;
return *this;
}

static auto dummythis()->decltype(this); //宣言のみ
// Foo* 型を表す型
using This = decltype(dummythis());

static auto dummythisref()->decltype(*this);//宣言のみ
// Foo& 型を表す型
using ThisRef = decltype(dummythisref());
// Foo 型を表す型
using ThisClass = std::remove_reference<ThisRef>::type;

ThisClass myself(){ return *this;}
// トップレベルで ThisClass 使用

private:
This const m_mythis = this;
// thisポインタの「偽物」
public:
This const mythis() const {return m_mythis;}

// m_mythis はポインタなので、 const Foo x; としても
// *(x.mythis()) に const性はない。
// const 性はポインタによって伝播されないため。
// const_cast や mutable を使わずにconst性を除去可能。
// (コンパイラによって挙動が異るかもしれない)。
// これ自身は自分の型を表す名前作成とは独立の話。

// const な代入演算子が可能。通常の代入演算子とオーバーロードされる。
Foo& operator=( const Foo& f ) const {
std::cout << "const ";
*m_mythis = *(f.mythis());
return *m_mythis;
}

virtual void foo(){
ThisClass::bar(); //この書き方が可能
}

static void bar(){
std::cout << "bar" << std::endl;
}
};


class Deriv : public Foo{
public:
virtual void foo() override {
// ThisClass::bar2();
// 「Foo::ThisClass に bar2メンバ関数がない」エラー
// 継承したからといってThisClass がDeriv型になるわけではない。
}

static void bar2(){
std::cout << "bar2" << std::endl;
}
};


int main(){
Foo().foo();
Foo().myself().foo();
const Foo x;
Foo y;
x = y; // const 代入!
Deriv().bar2();
return 0;
}

実行結果:

bar
コピーコンストラクタ
bar
const 代入
bar2

以上。

«日本国憲法、自民党改憲案、中国憲法、北朝鮮憲法等の前文を比べてみた