設計はペルー神父、施工は野原与吉・鉄川与助が担当し、1908年に完成した。煉瓦造・ゴシック様式の平屋で、五島初の洋風建築とされ、その美しい外観は五島内の他の天主堂の模範となった。内部は木造で、ステンドグラスの模様は五島の他の教会と同じく椿をモチーフとしている。リブ・ヴォールト天井はイタリアから資材を運び込んだといわれている。
第41回から第45回までは毎回1万票以内の差で勝負が決まる激戦区であったが、第46回以降は自民党の公認候補となっている稲田朋美が圧勝している。小選挙区制移行後初の第41回総選挙では、経済企画庁長官などを務めた自民党公認候補の平泉渉、新進党公認候補の笹木竜三の2人の前職に、元参議院議員で旧民主党公認候補の古川太三郎と3人の国政議員経験者に加え、自民党から公認を得られず無所属での立候補となった通商産業省出身の松宮勲もあわせた争いとなったが、笹木が小選挙区で勝利している（ただし、笹木にとっては現在まで唯一の小選挙区勝利）。第42回以降は、落選した平泉に代わって自民党の公認を得た松宮が2回連続で小選挙区当選。一方の笹木は新進党の解党を受けて自民党入りを模索したが松宮との公認争いに敗れ、2回連続で無所属での立候補となり、いずれも松宮に敗れているが、双方が接戦となる対決構図となっていた。この対決構図に変化が生じたのが2005年のいわゆる「郵政選挙」となった第44回総選挙で、松宮が郵政民営化関連法案に反対したため自民党の公認を得られず、無所属での立候補を余儀なくされた。自民党は松宮に対しいわゆる「刺客候補」として稲田朋美を送り込み、民主党の公認を初めて得た笹木も加えて三つ巴の戦いとなった。大接戦の末、稲田が373票差で笹木を下して当選。僅差で敗れた笹木も重複立候補していた比例北陸信越ブロックで復活当選し、5年ぶりに国政に復帰した。その一方で、松宮は議席を失い、自民党から離党勧告処分を受けて離党。その後2007年に民主党へ入党し、選挙区を福井3区へ移した。2009年の第45回総選挙では、民主党への追い風と自民党への逆風から笹木と稲田の支持が拮抗していると事前に伝えられたが、結果は前回よりも大差の6,850票差で稲田が笹木を破った（笹木も比例復活当選）。2012年の第46回総選挙では、一転して民主党に対する逆風もあり、稲田が次点以下を倍以上の得票で下し3選。笹木は比例復活も出来ず、議席を失った。2014年の第47回総選挙では、前回日本維新の会から立候補し、その後維新の党公認候補となった元福井県議会議員の鈴木宏治との選挙協力のため、笹木が初めて立候補を取りやめたが、稲田が大勝し4選を果たした。
C++03では、列挙型は型安全でなかった。列挙型が異なっていても、実質的には整数として扱われていた。このため、型の違う列挙型の値同士が比較できてしまった。C++03で唯一提供されていた型安全性は、整数や、ある列挙型の値が、暗黙的に他の列挙型には変換されない、ということだけである。また、内部的な整数型はコンパイラの実装に依存しており、列挙型のサイズに依存するコードは可搬ではなかった。さらに、列挙型の値のスコープは、列挙体が定義されたスコープと同じとなる。そのため、二つの列挙型が、同じ名前のメンバをもつことはできなかった。C++11では、以上のような問題のない、特別なクラス化された列挙型が導入された。enum class（またはenum struct）宣言を用いることで、これを表現できる。enum class Enumeration {  Val1,  Val2,  Val3 = 100,  Val4 /* = 101 */,};この列挙は型安全である。enum classの値が暗黙的に整数値に変換されることはなく、したがって整数値と比較することもできない（Enumeration::Val4 == 101はコンパイルエラーになる）。enum classの内部的な型はコンパイラの実装に依存しない。デフォルトではintであり、次のように明示的に指定することもできる。enum class Enum2 : unsigned int {Val1, Val2};列挙名は列挙型のスコープで定義される。列挙名を使うときには、Enum2::Val1のように明示的にスコープを指定しなければならない。上の例では、Val1は未定義である。さらに、C++11では従来スタイルの列挙型にも、明示的なスコープや内部的な型の指定ができる。enum Enum3 : unsigned long {Val1 = 1, Val2};この場合、列挙名は列挙型のスコープで定義される（Enum3::Val1）が、後方互換性のため、列挙型が定義されたスコープにも定義される（Val1）。C++11では列挙型の前方宣言も可能である。以前は列挙型のサイズが内容によって決まっていたため、列挙型は前方宣言できなかった。明示的あるいは暗黙的に列挙のサイズが決定できさえすれば、前方宣言が可能である。enum Enum1;                     // C++03とC++11両方で不正。内部的な型が明示されていない。enum Enum2 : unsigned int;      // C++11では正しい。内部的な型が明示されている。enum class Enum3;               // C++11では正しい。enum class宣言はデフォルトの型がintである。enum class Enum4: unsigned int; // C++11では正しい。enum Enum2 : unsigned short;    // C++11でも不正。Enum2が既に違う型で宣言されている。