LinuxMintで検索エンジンを増やす

Linux版Firefoxのメモ LinuxMint16のFirefoxのナビゲーションバーの検索窓にはデフォルトでは「DuckDuckGo」 しか入っていません。 他の検索機能(Google検索など)を使用したい場合には 別途増やす必要がありますが 以下のサイトを使用すれば、簡単に拡張で…

template classのfriend関数をクラス内部で実装する

C++

テンプレートクラスを作成し、その演算子などを非メンバ関数で定義する場合 往々にして、friend関数にする場合が多いと思います これが厄介で、まずテンプレートクラスの前方宣言をします その後にテンプレート関数として目的のfriend関数を前方宣言します …

const参照引数

以下の関数呼び出しはコンパイルエラーにも実行時エラーにもなりません template<typename T> T add(const T& x,const T& y) { return x+y; } int main() { auto a = add(10,11); //rvalue渡し } lvalue引数にrvalueを渡しているのだから エラーになりそうなものですが T</typename>…

座標系のオレオレクラスを作成中(1)

C++

せっかくなのでconstexpr対応しつつ、ちょこちょこ書いてます クラスを設計する事より、constexprを学ぶ事がメイン(本末転倒) 進捗その1 http://melpon.org/wandbox/permlink/Rnq8D2etXIvLfmfx 進捗その2 http://melpon.org/wandbox/permlink/RLVRvHYCfS…

readonlyなpublicメンバ変数

C++

普通のクラス設計でpublicメンバ変数は定義しないと思いますが 座標系のクラスを作っているときにいちいちgetterから呼び出すのに 変な違和感を覚えます readonlyなpublicメンバが欲しいです C#ではpublic readonly int x;とかpublic int x{get; private set…

Keyが文字列なオレオレmapラッパでemplace

C++

前にpush_backで作った奴のemplace版です テスト項目を増やしました http://melpon.org/wandbox/permlink/76HSVvDSWz8lhG2U 追記:dictのTがchar*の引数コンストラクタを持っている場合に対応しました http://melpon.org/wandbox/permlink/oHlbOyB12ItmOVz6 …

素数の個数を求める

http://ideone.com/5A9Zxg をC++で置き換えてみた http://ideone.com/e5xgrV C++14版 http://melpon.org/wandbox/permlink/3vZnPjuGYRG6Hyvj http://melpon.org/wandbox/permlink/cTbebcWZhqmdFz77 (2014,4/5) 今気が付いたのですが、単位がおかしいですね・…

constexprの実体化?

C++

昔、constexpr文字列を使ったときと同様のノリで static constexprメンバ変数として数字配列を作成したらリンクエラーがでました class Hoge{ public: static constexpr auto array = {1,2,3,4}; // Error static constexpr auto word = (char*)"hoge"; // O…

TMPいろいろ試してみた

C++

Variadic TemplateをつかったSTLのTemplate Template parameter イディオム 後ついでにmember関数の有無をチェックするヘルパクラスを使ったSFINAE http://melpon.org/wandbox/permlink/usQueFzSHaHzzzLN ↓ declval() → T() の方がコンパイル時間が早い? ht…

TMPの条件分岐を記載する場所

C++

返り値型がvoid型 template<typename T> typename enable_if< /*条件式*/>::type func(T t) { } template<typename T> typename enable_if::type func(T t) { } 返り値型が引数型に依存 その(1) template<typename T> typename enable_if< /*条件式*/,T>::type func(T t) { } template<typename T> typename</typename></typename></typename></typename>…

コンテナの内部型が特定のコンストラクタを所有しているか否かで関数のオーバーロード分岐(SFINAE)

C++

やり方 is_constructibleを使えばよかったようです http://melpon.org/wandbox/permlink/HmXdOTNXMO53kIUy

TMPわからん

C++

テンプレーメタプログラミング(TMP)というものをC++においてよく見かけます 私の理解が曖昧なので、とりあえずまとめることにします 前提知識として 関数のオーバーロード C言語とC++の言語使用の違いの例として、よく「同一の名前を持つ関数を複数定義で…

Softetherを使ってみようと思う(1)

自宅のパソコンに出先からアクセスすることが可能になるVPN構築ソフトウェア 「Softether」を使ってみました サーバー:Linux(Linux Mint 16) ← 今回はこれの話 サーバーの操作・管理:windows7 クライアント:Windows8.1 サーバー側の設定(インストール…

C++14の汎用lambda

C++

generic lambdaがすごく便利ですね ファンクタの定義はTemplateを使うか、lambdaを使うかの2択で 前者はメンバ関数内では使用できないし、 後者は引数の型を明示しなくてはならないため、 foreachなどのコンテナアルゴリズムを使う場合は Template引数毎に同…

equal_rangeでrange based for loop が使えなかった

C++

BOOST_FOREACHでは使用できたのですが forではerrorになりました C++14以降では対応してくれるのかな? やはりできないらしい 参考:http://d.hatena.ne.jp/gintenlabo/20110122/1295714441

headerファイルに文字列定数(string編)

C++

struct { static const char* foo = (char*)"foo"; } とても便利なのですが, class T{ private: U* u_; static const char* foo = (char*)"foo"; public: const string& get_u{return (u_==nullptr)?(foo):(*u_);} }; では使用することができません かとい…

mapのinsert

C++

std::mapのinsert関数では上書きができない に嵌っていました(ちゃんと仕様書よめ) 特定のkeyに対応するvalueを変更したい場合は operator[]の戻り値に代入する

constexprで文字列定数定義

はじめに ある文字列の実態を定義したい場合はヘッダーファイル側(.hpp)で静的変数宣言し, 実装側(.cpp)に文字列の初期化を定義するのが普通ですが, ヘッダーファイル側(.hpp)だけで文字列を定義するやり方について考えました constexprを使う const…

ポインタ変数のdefault ctorはnullptr

C++

http://ideone.com/ggg8bp

はじめまして

英語とC++とC#に興味があります. (興味があるだけでできません) それに類する事を書いていけたらなと思います 以上です