最近のトラックバック

最近のコメント

ウェブページ

2017年8月
    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 31    

他のアカウント

無料ブログはココログ

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世紀以後に認められた権利。
    考察:正当な努力をしても不当な貧困等があれば、国家はそれを救済する努力の義務があることになる。現代民主主義国は「自己責任の国」ではない。働きたくても働けないなどの場合は国家が救済努力することを義務付ける。もちろん国民が弱者を叩いて憂さ晴らしをするような民度の国ではうまく機能しない。
    これは憲法の規定を直接の根拠として権利の実現を裁判所に請求することのできる具体的な権利ではない。具体的権利となるためには立法による裏付けが必要。(私はそのような立法を国民が要求する性格があるということ、と解釈している。)

自由、自由、と連呼するが、これは私欲によって何でもかんでもやってよい、という意味の自由とはいえないだろう。12条等。むしろ、個人個人の才能を開花させる(学問でもスポーツでも芸術でも、どんな分野でも)ことによる社会全体の可能性を最大限に高め、それによって福祉も享有できるようになること。また、そもそも人間は健全な人間に成長するためには、権利・自由の保障が必要だということ。また、人間は間違いを侵すものだから、間違える自由も認められなければならない(その結果犯罪になるのは好ましくないので、制限は必要だが)、などの意味があるだろう。

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

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

人権の相対性

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

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

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

自由権と社会権との関係

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

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

考察:

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

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

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

以上。

2017年6月18日 (日)

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

現行日本国憲法と自民党憲法改正草案を比較する参考として、他国のもいくつか含めて前文を比較してみた。

現行の日本国憲法前文 と自民党憲法改正草案 の前文を比べると、まず、現行の「日本国民は」が「日本国は」に変わっている。

近代の民主主義国の憲法は国民から国家権力への命令書(契約書)であることが本質なので、ここで既に自民党改憲案は憲法ではない、と言える。この本質は立憲主義とも言Photo_2 われるが、これは公権力が暴走しないように縛らなければならないから絶対に必要である。さもなければいつかは独裁になる。自民党改憲案も後半では国民が主語になっているが、前半で国の方が上位という概念が出来ている。

参考にアメリカ合衆国憲法とドイツ基本法(実質的な憲法)の前文を見ると、国民が主語になっている。立憲主義がよく現れている例としてドイツ基本法の第1条を見れば、憲法を守る(憲法に従う)義務は国家の方にあり、憲法は国家権力を拘束するものであることが明記されている。(ドイツ基本法のいわゆる「戦う民主主義」では「ドイツ国民に憲法順守義務を課している」という言い方がされることがあるが、立憲主義を強調しているこの基本法の本質を見逃す危険があるので不適当な言葉だと思う。)

権威には「根拠」「正当性」がないと、暴力組織にしかならない。実際これは長続きしにくい。

自由主義陣営の憲法は個人の尊厳にその根拠を置いているので、「国民」→「国家権力」という形式になる。

一方、中国憲法や北朝鮮の憲法(近代憲法、民主主義憲法とは言えないが)の前文を見てみる。どちらも国が主語であり、歴史に根拠を置いている。中国憲法序文は国の権威の根拠として革命を持ってきている。万世一系の天皇に根拠を置いていた大日本帝国憲法とは対極的である。中国憲法前文の厳密さは特別である。歴史を根拠にするのは権威の根拠としては少々問題があると思うが書いてあるだけ良い。それに比べたら自民党の改憲案は「長い歴史」「天皇を戴く」だけで弱すぎる。つまり自民党改憲案には国家の権威の根拠が書かれていないとしか言えない。
さらに、序文では出てこないが、内容は内閣、特に内閣総理大臣に権力が集中している。何故総理にそのような権力があるのか、その根拠・正当性が書かれていない。これでは論理的に破綻する。

中国憲法、北朝鮮憲法、自民党改憲案は、国→民、の形式なので民主主義国は不可能である(国が暴走したときに止める術がない)。それでも正当性が書いてあれば保つ。書いてないのは危険である。

従って、自民党改憲案は中国憲法や北朝鮮憲法より劣っているということである。

中国憲法前文の最後には人民も含めてこの憲法に従わなければならない旨が書いてあるので立憲主義を明確に否定していると言える。自民党改憲案も前文だけでもその気配があるが草案102条で立憲主義を明白に否定している(自民党憲法改正草案Q&Aでは、立憲主義を否定していないと書かれているが、草案102条があるだけで否定される)

現行日本国憲法 前文

日本国民は、正当に選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、諸国民との 協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、政府の行為によつて再び戦争の惨禍が起ることのないやうにすることを決意し、ここに 主権が国民に存することを宣言し、この憲法を確定する。そもそも国政は、国民の厳粛な信託によるものてあつて、その権威は国民に由来し、その権力は国民の 代表者がこれを行使し、その福利は国民がこれを享受する。これは人類普遍の原理であり、この憲法は、かかる原理に基くものである。われらは、これに反する 一切の憲法、法令及び詔勅を排除する。

日本国民は、恒久の平和を念願し、人間相互の関係を支配する崇高な理想を深く自覚するのであつて、平和を愛する諸国 民の公正と信義に信頼して、われらの安全と生存を保持しようと決意した。われらは、平和を維持し、専制と隷従、圧迫と偏狭を地上から永遠に除去しようと努 めてゐる国際社会において、名誉ある地位を占めたいと思ふ。われらは、全世界の国民が、ひとしく恐怖と欠乏から免かれ、平和のうちに生存する権利を有する ことを確認する。

われらは、いづれの国家も、自国のことのみに専念して他国を無視してはならないのであつて、政治道徳の法則は、普遍的なものであり、この法則に従ふことは、自国の主権を維持し、他国と対等関係に立たうとする各国の責務であると信ずる。

日本国民は、国家の名誉にかけ、全力をあげてこの崇高な理想と目的を達成することを誓ふ。

アメリカ合衆国憲法前文

われら合衆国の国民は、より完全な連邦を形成し、正義を樹立し、国内の平穏を保障し、共同の防衛に 備え、一般の福祉を増進し、われらとわれらの子孫のために自由の恵沢を確保する目的をもって、ここに アメリカ合衆国のためにこの憲法を制定し、確定する。

ドイツ基本法前文

神と人間に対するみずからの弁明責任を自覚し、

統合されたヨーロッパの中で平等の権利を有する一員として、世界平和に貢献しようとする決意に満ちて、

ドイツ国民は、その憲法制定権力により、この基本法を制定した。

バーデン=ヴュルテンベルク、バイエルン、ベルリン、ブランデンブルク、プレーメン、ハンブルク、ヘッセン、メクレンブルク=フォアポンメルン、ニーダー ザクセン、ノルトライン=ヴエストファーレン、ラインラント=プファルツ、ザールラント、ザクセン、ザクセン=アンハルト、シュレスヴィヒ=ホルシュタイ ンおよびテューリンゲンの諸ラントのドイツ人は、自由な自己決定によりドイツの統一と自由を達成した。

これにより、この基本法は全ドイツ国民に適用される。

ドイツ基本法 第1条和訳

第1条 [人間の尊厳、基本権による国家権力の拘束]

(1) 人間の尊厳は不可侵である。これを尊重し、および保護することは、すべての国家権力の義務である。

(2) ドイツ国民は、それゆえに、侵すことのできない、かつ譲り渡すことのできない人権を、世界のあらゆる人間社会、平和および正義の基礎として認める。

(3) 以下の基本権は、直接に妥当する法として、立法、執行権および司法を拘束する。

自民党憲法改正草案 前文

日本国は、長い歴史と固有の文化を持ち、国民統合の象徴である天皇を戴く国家であって、国民主権の下、立法、行政及び司法の三権分立に基づいて統治される。
 我が国は、先の大戦による荒廃や幾多の大災害を乗り越えて発展し、今や国際社会において重要な地位を占めており、平和主義の下、諸外国との友好関係を増進し、世界の平和と繁栄に貢献する。
 日本国民は、国と郷土を誇りと気概を持って自ら守り、基本的人権を尊重するとともに、和を尊び、家族や社会全体が互いに助け合って国家を形成する。
 我々は、自由と規律を重んじ、美しい国土と自然環境を守りつつ、教育や科学技術を振興し、活力ある経済活動を通じて国を成長させる。
 日本国民は、良き伝統と我々の国家を末永く子孫に継承するため、ここに、この憲法を制定する。

中華人民共和国憲法恋する中国 による和訳)

中国は、世界でも最も古い歴史を持つ国家の一つである。中国の諸民族人民は、輝かしい文化を共同で作り上げており、また、栄えある革命の伝統を持っている。
1840年以降、封建的な中国は、次第に半植民地・半封建的な国家に変化した。中国人民は、国家の独立、民族の解放並びに民主と自由のために、戦友の屍を乗り越えて突き進む勇敢な闘いを続けてきた。
20世紀に入って、中国には天地を覆すような偉大な歴史的変革が起こった。
1911年、孫中山先生の指導する辛亥革命は、封建帝制を廃止し、中華民国を創立した。しかし、帝国主義と封建主義に反対するという中国人民の歴史的任務は、まだ達成されなかった。
1949年、毛澤東主席を領袖とする中国共産党に導かれた中国の諸民族人民は、長期にわたる困難で曲折に富む武装闘争その他の形態の闘争を経て、ついに帝 国主義、封建主義及び官僚資本主義の支配を覆し、新民主主義革命の偉大な勝利を勝ち取り、中華人民共和国を樹立した。この時から、中国人民は、国家の権力 を掌握して、国家の主人公になった。
中華人民共和国の成立後、我が国の社会は新民主主義から社会主義への移行を一歩一歩実現していった。生産手段私有制の社会主義的改造が達成され、人が人を 搾取する制度は消滅して、社会主義制度が確立した。そして、労働者階級の指導する労農同盟を基礎とした人民民主主義独裁、すなわち、実質上のプロレタリ アート独裁は、強固になり、発展した。中国人民及び中国人民解放軍は、帝国主義と覇権主義の侵略、破壊及び武力挑発に打ち勝ち、国家の独立と安全を守り、 国防を強化した。経済建設では、大きな成果を収め、独立した、比較的整った社会主義の工業体系がほぼ出来上がり、農業生産も著しく高められた。教育、科 学、文化等の事業は、大きな発展を遂げ、社会主義思想の教育で中 国の新民主主義革命の勝利と社会主義事業の成果は、中国共産党が中国の各民族人民を指導し、マルクス・レーニン主義及び毛澤東思想の導きの下に、真理を堅 持し、誤りを是正し、多くの困難と危険に打ち勝って獲得したものである。我が国は、長期にわたり社会主義初級段階にある、国の根本的任務は、中国的特色を 有する社会主義という道に沿って、力を集中して社会主義現代化の建設をする事にある。中国の各民族人民は、引き続き中国共産党の指導の下に、マルクス・ レーニン主義、毛澤東思想、鄧小平理論及び"三つの代表"の重要思想に導かれて、人民民主独裁を堅持し、社会主義の道を堅持し、改革開放を堅持し、社会主 義の各種制度を絶えず完備し、社会主義市場経済を発展させ、社会主義的民主主義を発展させ、社会主義的法制度を健全化し、自力更正及び刻苦奮闘につとめ て、着実に工業、農業、国防及び科学技術の現代化を実現し、物質文明、政治文明および精神文明の調和のとれた発展を推進して、我が国を富強、民主的、か つ、文明的な社会主義国家として建設する。
我が国では、搾取階級は、階級としては既に消滅したが、なお一定の範囲で階級闘争が長期にわたり存在する。中国人民は、我が国の社会主義制度を敵視し、破壊する国内外の敵対勢力及び敵対分子と闘争しなければならない。
台湾は、中華人民共和国の神聖な領土の一部である。祖国統一の大業を成し遂げることは、台湾の同胞を含む全中国人民の神聖な責務である。
社会主義の建設という大きな仕事は、労働者、農民及び知識分子に依拠し、団結できるすべての勢力を団結しなければならない。長期の革命と建設の過程におい て、中国共産党の統率的指導のもとで、各民主党派と各人民団体が参加し、社会主義的勤労者、社会主義事業の建設者、社会主義を擁護する愛国者および祖国統 一を擁護する愛国者のすべてを含む、広範な愛国統一戦線が結成されたが、この統一戦線は引き続き強固になり発展して行くであろう。中国人民政治協商会議 は、広範な代表性を持つ統一戦線の組織として、これまで重要な歴史的役割を果たしてきたが、今後、国家の政治生活、社会生活及び対外的な友好活動におい て、また、社会主義的現代化の建設を進め、国家の統一と団結を守る闘いにおいて、更にその重要な作用を発揮するであろう。中国共産党指導の下における多党 協力及び政治協商制度は長期にわたり存在し、発展するであろう。
中華人民共和国は、全国の諸民族人民が共同で作り上げ、統一した多民族国家である。平等、団結及び相互援助の社会主義的民族関係は、すでに確立しており、 引き続き強化されるであろう。民族の団結を守る闘争の中では、大民族主義、主として大漢族主義に反対し、また、地方民族主義にも反対しなければならない。 国家は、全力を尽くして全国諸民族の共同の繁栄を促進させる。
中国の革命と建設の成果は世界人民の支持と切り離すことができない。中国の前途は、世界の前途と緊密につながっている。中国は、独立自主の対外政策を堅持 し、主権と領土保全の相互尊重、相互不可侵、相互内政不干渉、平等互恵及び平和共存の5原則を堅持して、諸国家との外交関係及び経済・文化交流を発展させ る。また、帝国主義、覇権主義及び植民地主義に反対することを堅持し、世界諸国人民との団結を強化し、抑圧された民族及び発展途上国が民族の独立を勝ち取 り、守り、民族経済を発展させる正義の闘争を支持して、世界平和を確保し、人類の進歩を促進するために努力する。
この憲法は、中国の諸民族人民の奮闘の成果を法の形式で確認し、国家の基本となる制度及び任務を定めたものであり、最高の法的効力を持つ。全国の諸民族人 民並びにすべての国家機関、武装力、政党、社会団体、企業及び事業組織は、いずれもこの憲法を活動の根本準則とし、かつ、この憲法の尊厳を守り、この憲法 の実施を保障する責務を負わなければならない。

北朝鮮憲法 序文和訳

朝鮮民主主義人民共和国は、偉大な領袖金日成同志の思想と領導を具現したチュチェの社会主義祖国である。

 偉大な領袖金日成同志は、朝鮮民主主義人民共和国の創建者であり、社会主義朝鮮の始祖である。

  金日成同志は、永生不滅のチュチェ思想を創始し、その旗じるしのもとに抗日革命闘争を組織・領導して、栄えある革命伝統を築き、祖国光復の歴史的偉業を成 し遂げ、政治、経済、文化、軍事分野において自主独立国家建設の強固な土台を整えたうえで朝鮮民主主義人民共和国を創建した。

 金日成同志は、主体的な革命路線を示し、各段階の社会革命と建設事業を賢明に領導して、共和国を人民大衆中心の社会主義国家に、自主、自立、自衛の社会主義国家に強化・発展させた。

 金日成同志は、国家建設と国家活動の根本原則を明らかにし、最も優れた国家社会制度と政治方式、社会の管理体系と管理方法を確立し、社会主義祖国の富強・繁栄とチュチェ革命偉業の継承・完成のための確固たる土台を築いた。

 金日成伺志は、「以民為天」を座右の銘とし、常に人民とともにあって、人民のために生涯を捧げ、崇高な仁徳政治で人民を見守り導いて、全社会を1心団結した1つの大家庭に変えた。

  偉大な領袖金日成同志は、民族の太陽であり、祖国統一の救いの星である。金日成同志は、国の統一を民族至上の課題としてかかげ、その実現のためにあらゆる 労苦と心血をすべて捧げた。金日成同志は、共和国を祖国統一の強力な堡塁として固める1方、祖国統一の根本原則と方途を提示し、祖国統一運動を全民族的な 運動に発展させて、全民族の団結した力で祖国統一偉業を成就するための道を開いた。

  偉大な領袖金日成同志は、朝鮮民主主義人民共和国の対外政策の基本理念を明らかにし、それにもとづいて国の対外関係を拡大・発展させ、共和国の国際的権威 を高くとどろかせた。金日成同志は、世界政治の元老として、自主の新時代を開拓し、社会主義運動と非同盟運動の強化・発展のために、世界の平和と人民との 親善のために精力的に活動し、人類の自主偉業に不滅の貢献をした。

 金日成同志は、思想理論と領導芸術の天才であり、百戦百勝の鋼鉄の霊将であり、偉大な革命家、政治家であり、偉大な人間であった。

 金日成同志の偉大な思想と領導業績は、朝鮮革命の万年の財宝であり、朝鮮民主主義人民共和国の隆盛・発展のための基本保証である。

 朝鮮民主主義人民共和国と朝鮮人民は、朝鮮労働党の領導のもと偉大な領袖金日成同志を共和国の永遠の主席として高く戴き、金日成同志の思想と業績を擁護固守し、継承・発展させて、チュチェ革命偉業を最後まで完成していくであろう。

 朝鮮民主主義人民共和国社会主義憲法は、偉大な領袖、金日成同志の主体的な国家建設思想と国家建設業績を法化した金日成憲法である。

以上

 


 

立憲主義という概念の確認

立憲主義という言葉が独り歩きしている気がするので、素人ながらこの言葉の意味を確認したい。これは「憲法は何のためにあるか?」「何故憲法が必要か?」ということに繋がる。

言葉には意味があるが、普通ただひとつの意味とは限らない。「憲法」という言葉にも状況によって違った意味に使われ得る。

  1. 形式的意味: 「憲法」と名付けられた成文の法典(憲法典)。この意味で言う場合は内容は問わない。
  2. 実質的意味: ある特定の内容を持った法典を「憲法」という場合。
    1. 固有の意味: 国家の統治の基本を定めた法のこと。どんな国にもある。
    2. 立憲的な意味: 自由主義に基づいて定められた国家の基礎法。「近代的意味の憲法」とも呼ばれる。1と異なり政治権力の組織化よりも、(専断的な)権力を制限して人権を保障することを目的とする。

「憲法」という言葉でもっともすぐれた特徴は立憲的意味にある。以後は立憲的意味の憲法について確認する。

まず、思想として「すべて個人は互いに平等な存在であり、生まれながらに自然権(人間ならば当然持っている権利、のような意味合いもある)を持つ。その核心は人間の人格不可侵の原則・・・個人の尊厳・・・である。

従って全ての価値、権威の源は個人の尊厳である、ということになる。「憲法の中で最も重要な条文をひとつだけあげよ」との問いには「憲法13条」となるのはここに由来する。

憲法は(様々な目的があるが、最大の目的は)国民の人権を守るため国家権力を制限するものとして存在する。そして憲法を制定する主体は国民ということになる。

法律(法律に準ずるものも含む)が国家(公権力)が国民を制限する(国民に命令する)ものと対比される。

Photo

日本国憲法前文にも

そもそも国政は、国民の厳粛な信託によるものであつて、その権威は国民に由来し、

とある。公権力には正当性がなければならない。上の原理により個人の尊厳がその源であり、国政を行うのは国民から選ばれた代表者であるから、それは国民へ奉仕するための権威でなければならない。それを実定法としたものが憲法である。

また上の原理により国民主権が定まる。

また、憲法はこの理由により最高法規となる。

最高法規としての憲法の本質は、むしろ、憲法が実質的に法律と異るという点に求めなければならない。つまり、憲法が最高法規であるのは、その内容が、人間の権利・自由をあらゆる国家権力から不可侵のものとして保障する規範を中心として構成されているからである。

芦部信喜他「憲法」(第五版)p.12。

憲法が硬性(改正しにくい)であること(96条)は最高法規であること(98条)と相補的な関係にあるからこれらは形式的な最高法規性を宣言している。そして、「最高法規」の部の先頭にある97条は人権を永久に保障するが、それはこの憲法の最高法規性の実質的根拠を示している。
前文の最初が「日本国民は」で始まっており、99条で憲法尊重擁護の義務は公権力である旨書かれているので、憲法の差出人は国民であり、名宛先は公権力である、という「国民→公権力」の形式が明言されている。

形式的ではなく、この実質的根拠を考えるとき、憲法は条文をただ並べたものではなく、条文の重さも同じと考えることは出来ず、全体としてひとつの有機的な価値体系であることになる。

考察

何故、このような立憲的な憲法が必要なのだろうか?

1つは、人間というものは権力を持てば持つほどより権力が欲しくなる生き物であること。例えば「人が酒を飲む」が容易にエスカレートして「酒が人を飲む」よとなるように、人間の欲望にはきりがない。もともと政治家は野心家でなければ務まらないしその中で権力闘争で勝ち抜けばさらに権力を求める傾向は高くなる。従って、本来国民から信託された筈の権威を自分の野心のために使う欲望は非常に強まる。正当性を欠く暴走は容易に起こる。

その歯止めは絶対に必要である。

2つ目は、近代以後の国家権力の強大さがあるだろう。西洋諸国に対抗するため明治維新から日本は中央集権化(廃藩置県など)を進めた。西南戦争は勝負は最初から決まっていた。この強大さは1つ目で述べた為政者の権力への渇望をさらに激しくする。それにもまして、国家は暴力を独占していることになる。

もし、国家権力が暴走して国民に牙を向いた場合、国民はなすすべがない。戦力の桁が違いすぎる。警察が国民に牙を向いただけでもどれほど恐ろしいことになるか。

従って、国民は常に国家権力を監視しなければならない宿命を負う。さもなければ命も危ないからだ。

日本国憲法12条

この憲法が国民に保障する自由及び権利は、国民の不断の努力によって、これを保持しなければならない。又、国民は、これを濫用してはならないのであつて、常に公共の福祉のためにこれを利用する責任を負ふ。

この「不断の努力」は伊達ではない。自由及び権利を国民は油断せず自分たちで保持しなければならない。

追記: 別の言い方をすれば。この12条、何かおかしい、と感じないだろうか? 最高法規である憲法で国民の自由、権利を保障しているというのに、何故わざわざ国民はそれを自分たちで守らなければならない、などと書いてあるのか? 国民間の自由、権利の侵害は法律、警察、裁判所などなどの制度で(完全とは言えないにしても)守るシステムがある(法人も含む)。それなら国民は自分たちの自由や権利を「何から」守らなければならないというのか? それは国家権力そのものからしかないのだ。それ以外からの自由、権利の侵害は守るシステムがあるのだから。油断していると「政府」に自由、権利を奪われてしまうから常にそれを守れと言っているのだ。

以上のことを考えると、立憲主義は国家権力・政権に対して猜疑の心で臨む(性悪説の立場で臨む)必要があるということだろう。民主主義国では、友人、恋人、家族には信頼しても、国家権力を無条件で信頼など決してしてはならない、ということだ。

注意: 権力の分立がしっかりしていなかったり、為政者が法を軽んじている場合は立憲主義も絵に描いた餅でなかなか機能しない。

追記: マッカーサー草案の押し付けについて。1949年2.13.でマッカーサーは「草案の憲法の原理」を変えることを許さず、「政府が何もしなければ直接国民に問う」としたため、日本政府内などで、これは非自主的な「押し付け憲法」であり「全面改定すべき」との意見(押し付け憲法論)が多くなった。確かにこの憲法の原理は政府にとってはこの上もなく屈辱的なものであろう(特に、案を一蹴された松本国務大臣の屈辱は想像を絶するだろう)。学問的には「押し付けの要素があったとしても、それが全面改定する理由になるか?」など評価されていない模様だが、妄執は続いていたと思われる。現行憲法の原理を変え(必然的に憲法の改正限界を越える)、憲法を全面改定する改正案が出たからである。しかし、これは合理的な理由によって出たものとは言いがたいので内容も不合理となりこの改憲は危険である。マッカーサーが政府を見切ってすぐに国民に問うていたらかなり状況は変わっていたと私は考える。(芦部他「憲法」(第五版)p.26.(押し付け憲法論に関する注釈)を参考にした。)

立憲主義については、まだまだ考えなければならないことがあるが、素人の備忘として。情報は主に、芦部他「憲法」第五版から得ている。

2017年3月30日 (木)

ジーン・シャープ「独裁体制から民主主義へ」を読んでみた−番外−非暴力行動198の方法

非暴力行動198の方法

本編

ジーン・シャープ「独裁体制から民主主義へ」

非暴力不服従抵抗の方法リスト。もちろん、これらは単なる例なので、これらをヒントに更にいろいろ考えられるだろう。

非暴力不服従抵抗の原理: 独裁政権は被支配者の生き血を吸わないと生きていけない。だから、服従や協力を可能な限り拒むことで飢えさせる。

  • 非暴力は「安全に」の意味ではない。暴力は逆効果になるから非暴力を選択するだけで、リスクは当然ある。つまり「犠牲者」も出る。
  • 非暴力は「道徳的に」の意味ではない。そもそも独裁政権では法律が必ずしも正義とは限らない社会でどう抵抗するかの戦略の問題。
  • これらのやり方を闇雲にやってうまくいくわけではなく、全体計画や戦略をたて、状況に合わせて臨機応変に対応する知恵が要求される。ただ、非暴力と言ってもこれだけ沢山の方法がある、と知ることは大事。

非暴力抵抗と説得の方法

形式的声明の方法

  1. 公共の場で演説する
  2. 反対意見や支援を示す手紙を送る
  3. 組織や機関による宣言を行う
  4. 署名入りの公共声明を出す
  5. 告発や決意を宣言する
  6. グループや大衆による嘆願を出す

幅広い人々とのコミュニケーション手段

  1. スローガン、風刺画、シンボル
  2. 旗、ポスター、プラカード
  3. チラシ、パンフレット、本
  4. 新聞、刊行物
  5. レコード、ラジオ、テレビ
  6. 空中文字、地上文字

グループによる主張の方法

  1. 代表団を設置する
  2. 模擬的な賞を授与する
  3. グループによるロビー活動を行う
  4. ピケを張る(重要な場所に行って、歩きまわったり座り込んだりして、監視する)
  5. 模擬的な選挙を実施する(合法的な選挙が認められていない場合に、独自に直接選挙や訪問による票回収などの方法で違法な選挙を行う)

象徴的な公然行動の方法

  1. 旗や象徴的な色を掲げる
  2. シンボルを身に付ける
  3. 礼 や礼拝を行う
  4. 象徴的なモノを届ける
  5. 抵抗のための脱衣行動を起こす
  6. 自身の所有物を破壊する
  7. 象徴的な明かりを掲げる
  8. 肖像画を提示する
  9. 抗議のためにペンキを塗布する(肖像画や看板にいたずら描きをしたり、塗りつぶす)
  10. 新しい標識や名前を掲げる(道路や駅名などの標識を撤去したり、異なった名前をつけるなど)
  11. 象徴的な音を鳴らす
  12. 土地や領土の象徴的な返還要求行動を起こす(重要な意味を持つ土地に木を植えたり、建物をたてるなど)
  13. 無礼な身振りをする

個人に対して圧力をかける方法

  1. 役人に"つきまとう"
  2. 役人をなじる
  3. 馴れ馴れしくする(主に兵士や警察を相手に、親しげに振る舞って、こちら側の影響力を直接的、間接的に与える)
  4. 寝ずの座り込みをする

演劇と音楽

  1. ユーモラスな寸劇やいたずらを行う。
  2. 演劇や音楽会を上演する。
  3. 歌を歌う

行進を利用する方法

  1. 行進をする。
  2. パレードを行う。
  3. 宗教的な行列を実施する。
  4. 巡礼する。
  5. 車によるパレードを行う。

死者を讃える方法

  1. 政治的追悼式を催す。
  2. 模擬的な葬儀を行う。
  3. 示威的な葬儀を行う。
  4. 墓参りをする。

公の集会行動

  1. 抗議や支援の集会を開く。
  2. 抗議会合を持つ。
  3. 偽装した抗議会合を開く。
  4. 討議会を開く。

撤退と放棄の方法

  1. 退室する。
  2. 沈黙する。
  3. 勲章を放棄する。
  4. 背中を向ける。(文字通り身体的に背中を向けて沈黙する。)

社会的非協力の方法

人を排斥する方法

  1. 社会的にボイコットする。
  2. 選択的な社会的ボイコットを行う。
  3. セックス・ストライキを行う。(好戦的な夫に対して、妻たちがセックスを拒否すること)。
  4. 破門する。
  5. 聖務禁止令を出す。(宗派のトップが、特定の地区での祭事の禁止を命ずること。)

社会的行事、慣習、機関への非協力の方法

  1. 社会活動やスポーツ活動を停止する。
  2. 社会的行事をボイコットする。
  3. 学生ストライキを行う。
  4. 社会的不服従を行う。
  5. 社会的機関から脱退する。

社会制度からの撤退の方法

  1. 自宅待機する。
  2. 完全な個人的非協力を行う。
  3. 労働闘争を行う。
  4. 避難所を設ける。
  5. 集団失踪する。
  6. 抵抗の逃避行(ヒジュラ)を行う。

経済的非協力の方法:(1)経済ボイコット

消費者による行動の方法

  1. 消費者によるボイコットを起こす。
  2. ボイコット製品の非消費運動を起こす。
  3. 耐乏生活に入る。
  4. 家賃不払いを起こす。
  5. 賃貸拒否をする。
  6. 全国的消費者によるボイコットを起こす。
  7. 海外の消費者によるボイコットを起こす。

労働者や生産者による行動の方法

  1. 工員によるボイコットを起こす。
  2. 生産者によるボイコットを行う。

中継ぎによる行動の方法

  1. 原料提供者や仲買人によるボイコットを起こす。

オーナーや経営陣による行動の方法

  1. 売買業者によるボイコットを起こす。
  2. 土地の賃貸や販売を拒否する。
  3. 閉鎖する。
  4. 産業支援を拒否する。
  5. 商人による”全体ストライキ(ゼネスト)”を起こす。

財政源の所有者による行動の方法

  1. 預貯金を引き出す。
  2. 料金、会費、税金の支払いを拒否する。
  3. 負債や金利の支払いを拒否する。
  4. 財源や信用金を遮断する。
  5. 政府への支払いを拒否する。
  6. 政府紙幣を拒否する。

政府による行動(支配的な独裁権力と別に政府が存在する場合)

  1. 国内通商を禁止する。
  2. 業者をブラックリスト化する。
  3. 海外販売業者との取引を禁止する。
  4. 海外買受業者との取引を禁止する。
  5. 国際貿易を禁止する。

経済的非協力の方法:(2)ストライキ

象徴的なストライキの方法

  1. 抗議のストライキを起こす。
  2. 急に退席する(稲妻ストライキ)。

農業ストライキの方法

  1. 農民によるストライキを起こす。
  2. 農場労働者によるストライキを起こす。

特殊グループによるストライキの方法

  1. 押し付け労働を拒否する。
  2. 囚人によるストライキを起こす。
  3. 同業組合によるストライキを起こす。
  4. 専門職によるストライキを起こす。

通常の産業ストライキの方法

  1. 機関によるストライキを起こす。
  2. 業界でのストライキを起こす。
  3. 同情ストライキを起こす。(他の作業員の苦境を解決するためのストライキのこと)。

限定的ストライキの方法

  1. 細分ストライキを起こす。(職場から作業員が一人ずつ去っていく形のストライキ。)
  2. バンパー・ストライキを起こす。(ある業界の中で、会社ごとストライキに入っていく方法。)
  3. 減産ストライキを起こす。
  4. 順法ストライキを起こす。
  5. 仮病を使って休む。
  6. 辞職によるストライキを起こす。
  7. 限定的ストライキを起こす。(特定の時間帯に作業しないことで行われるストライキ。時限スト。)
  8. 選択的ストライキを起こす。(特定の作業だけを行わないストライキ。)

複合的産業ストライキ

  1. 一般的ストライキを起こす。(過半数の作業員は仕事を続けるストライキ。部分スト。)
  2. 全体ストライキ(ゼネスト)を起こす。

ストライキと経済封鎖を組み合わせた方法

  1. 同盟休業をする。
  2. 経済封鎖をする。

政治的非協力の方法

権力に対する拒絶の方法

  1. 忠誠を保留、あるいは撤回する。
  2. 公的援助を拒否する。
  3. 抗議を唱える文書公開や演説を行う。

市民による政府への非協力の方法

  1. 立法機関をボイコットする。
  2. 選挙をボイコットする。
  3. 政府による雇用や就職をボイコットする。
  4. 政府の省、機関,その他の組織をボイコットする。
  5. 政府の教育方針から退学する。
  6. 政府支援を受ける組織をボイコットする。
  7. 執行機関への協力をボイコットする。
  8. 自身の標識や表札を撤去する。
  9. 役人指名の受託を拒否する。
  10. 既存機関の解散を拒否する。

市民による服従に代わる方法

  1. 不承不承と緩慢に従う。
  2. 直接的な指示不在の下で非服従を行う。
  3. 民衆規模での非服従を行う。
  4. 偽装的な非服従を行う。
  5. 集会や会合解散を拒否する。
  6. 座り込みを行う。
  7. 徴兵や国外追放に対して非協力になる。
  8. 潜伏や逃避をし、偽りの身分を名乗る。
  9. "非合法的"な法律に対して市民的不服従を起こす。

政府職員による行動の方法

  1. 政府職員による支援を選択的に拒否する。
  2. 指令や情報系統を遮断する。
  3. 足止めや障害を起こす。
  4. 事務業務全体での非協力を起こす。
  5. 司法関係者による非協力を起こす。
  6. 警察関係者による意図的非効率と選択的非協力を起こす。
  7. 上官に対する暴動を起こす。

政府による国内行動の方法

  1. 擬似合法的な回避や遅延を起こす。
  2. 地方政府による非協力を起こす。

他国の政府による行動の方法

  1. 外交や他の代表を変更する。
  2. 外交行事を遅延する、あるいは取り止める。
  3. 外交交渉を保留する。
  4. 外交関係を断絶する。
  5. 国際機関から脱退する。
  6. 国際機関への入会を拒否する。
  7. 国際機関からの除名を受ける。

非暴力的介入の方法

心理的介入の方法

  1. 自らをその要素に晒す。(火や灼熱の太陽など、身体的、心理的に極限状態に陥るような状況に身を置くこと。)
  2. 断食する。
    1. 道徳的圧力をかけるための断食。
    2. ハンガー・ストライキ。
    3. サティーヤグラハ的(非暴力行動としての)断食。
  3. 逆提訴する。
  4. 非暴力的ないやがらせをする。

物理的介入

  1. 座り込みを行う。
  2. 立ち尽くしをする。
  3. 無許可乗車をする。
  4. 無許可の水中侵入をする。(入場が禁止されている海や池に入る。)
  5. 歩き回りをする。
  6. 無許可で祈祷をする。
  7. 非暴力的急襲をかける。
  8. 非暴力的空襲をかける。
  9. 非暴力的侵入をする。
  10. 非暴力的な介入を行う。
  11. 非暴力的な妨害をする。
  12. 非暴力的な占拠をする。

社会的介入

  1. 新しい社会的パターンを構築する。
  2. 機関の作業を過剰負担にする。
  3. 業務を停滞させる。
  4. 集会で介入演説をする。
  5. ゲリラ演劇を上演する。
  6. 別の社会的機関をつくる。
  7. 別の通信システムをつくる。

経済的介入の方法

  1. 逆ストライキを起こす。(必要以上に働いて、従業時間や生産量をオーバーさせること。)
  2. 居座りストライキをする。(職場には来るが、作業は行わないストライキ。目的が達成されるまで続けられる。)
  3. 非暴力的に土地の差し押さえをする。
  4. 封鎖を無視する。
  5. 政治的動機による偽造を行う。
  6. 妨害的な買い占めを行う。
  7. 資産を差し押さえる。
  8. 投げ売りをする。
  9. 選択的に後援する。
  10. 別の市場をつくる。
  11. 別の交通システムをつくる。
  12. 別の経済機関をつくる。

政治的介入の方法

  1. 行政機関を過剰負担にする。
  2. 秘密警察の身分を暴く。
  3. 拘束を求める。
  4. "中立的"法律への市民的な不服従を行う。(独裁政権が提示する一見中立に見える法律を受け入れないこと。)
  5. 非協力の下に仕事を続行する。
  6. 二重統治や並行政府を打ち立てる。

2017年3月27日 (月)

c++ でconst修飾をしても非constメンバ関数を呼べるトリッククラス。思いつき

c++ のstd::string は、constメンバ関数では本体の文字列が変更されることはない、という仕様がある。
このために、 const std::string では文字列の中身が変更されることはない。
まあ、c++にはmutable とか const_cast とかあるけれども。

そこで、ちょっと思いつきがあって、std::stringにちょっとだけ仕掛けをした拡張クラスを作ってみたら、const修飾してもstd::stringの非constメンバ関数を呼び出せてしまった。(もちろん、std::stringの拡張クラスでできた、というだけで const std::string が文字列を変えないことには違いない)。

追記: STLコンテナのデストラクタはvirtualではないと後で知りました。すると、std::string などの public な継承クラスを作るのは間違いですね。

ソース:
----

#include <iostream>
#include <string>

class mystring : public std::string{
private:
mystring* const pseudothis_ = this;
public:
mystring* pseudothis() const {return pseudothis_;}
};

int main(){
const mystring str;
std::cout << "str=" << str << std::endl;
str.pseudothis()->append("abc");
std::cout << "str=" << str << std::endl;
*(str.pseudothis()) += "def";
std::cout << "str=" << str << std::endl;
return 0;
}

----

実行結果
----

str=
str=abc
str=abcdef

----

手抜きクラスなので、自動生成された(空文字列で初期化の)デフォルトコンストラクタしかないが、const 修飾されてもstd::stringの非メンバ関数を呼び出せるため文字列の変更ができる。

しかし、ちょっと待て。これはstd::string の拡張クラスでなくても pseudo_ メンバ(とそのゲッター)のあるクラスを作れば、const修飾しても非constメンバ関数を呼び出せるクラスになるのではないか? c++の言語仕様でこのことが「保障」されるかどうかは断言できないが、かなり普遍性のあるトリックになりそうだ。
(もちろん、 class T {....} の中で T* const pseudothis _= this; というメンバを作るわけだ。)

«法学ド素人が自民党憲法改正草案に駄目出しする-その前に