Category Archives: 未分類

C++/WinRTのプロジェクトが作成できない

以下のようなエラーが出て作成できない場合。

C++/WinRTの拡張機能をインストールする

ユニバーサルWindowsプラットフォーム開発をインストールする

Microsft Edgeで日本語の文字化けをなおす

サイトの文字種別により以下のどれかをアドレスバーに入力する。(なぜかEdgeではうまくペーストできないのでjavascript:の部分は手書きで入力)

2重ルータで片方のルータ接続のPCからもう片方のルータの設定ページに接続する

無線LANルータ(Buffalo)を買って、すでにあるモデム兼ルータ(NTT)に接続したのだが、NTTに有線で接続しているPCからBuffaloの設定ページに接続できなかった時のメモ。

前提

NTTのネットワーク:192.168.3.0/24
Buffaloのネットワーク:192.168.11.0/24
Buffaloはルータモードで運用

Buffaloを固定アドレスにする

Buffaloのインターネット側のIP、つまりNTTとつながっている側のIPを固定にする。ここでは192.168.11.100にする。この時の設定はBuffaloで無線でつながっているスマホから行った。(NTTのDHCPはこのアドレスを割り当てないようにしておかなければならない)


デフォルトゲートウェイやDNSはNTTのそれを指定する。

Buffaloでインターネットからの接続を許可

Buffaloでインターネット側(NTT側)からのポート80をアクセス許可する。

NTTの静的ルーティングを設定

自動でルーティング設定はしてくれないみたいなので、このままでは有線PCからBuffaloに接続できない。のでNTTで静的ルーティングを設定する。

これで有線PCから192.168.11.1にアクセスすると無線ルータのページに接続できた。

enable_if

enable_ifによりある条件のときだけtemplateを有効にすることができる。逆に言うとtemplateにしたくない条件を無効化することができる。

std::enable_if_t<std::is_convertible_v<T, int>>std::enable_if<std::is_convertible<T, int>::value>::type>と同じことなのでこれについて考える。

全体としての意味はTintに変換できるときだけテンプレートを有効にするということ。

is_convertible<T, int>Tintに変換できるかを判定し、その結果はvalueに格納される。

enable_if<A>Atrueかどうかを判定し、trueならばtypeに型voidを格納する。falseならエラーになる。

よって全体としてTintに変換できない場合はエラーになり、templateのインスタンス化は行われない(コンパイルエラーにはならない(SFINAE))。

この例ではどういうときにこれを使うのかの応用例は示せていないが、特定の型のときだけテンプレートを有効にしたい場合に使う。

typename = としているのはtypename A = などと同じでデフォルトのテンプレート引数の指定、これはテンプレートのインスタンス化をするかどうかだけのために使われるので、コード中では使われないのでこういう記述になっている。

Linuxでtmpディレクトリを変える

一時的に変える

ずっと変える

/etc/environmentファイルに変数TEMPを記述

パーミッションの’t’

もともとの/tmpのパーミッションには’t’がついている。rootだけが削除やリネームできるようにするためだと思われる。

C#のファイルダイアログでアプリケーションを選択させる

アプリケーション(拡張子exe)を選択させる

すべてのファイルから選択させる