Rokiのチラ裏

学生による学習のログ

2016-06-01から1ヶ月間の記事一覧

SFINAEの動作に納得がいかない

C++

と思ったこの頃。復習がてらにSFINAEを用いたコードを書いたのだが template<class std_class> auto size(std_class c)->decltype(c.size(),bool()){return true;} auto size(...)->bool{return false;} int main() { std::cout<</class>

zsh plugint maneger antigen入れた

色々zshプラグインを管理できるらしい。 % pwd /Users/rroki % git clone https://github.com/zsh-users/antigen.git % mv antigen .antigen % echo "source ~/.zshrc.antigen" >> .zshrc % vim .zshrc.antigen % source .zshrc 以下は.zshrc.antigen。 if […

zshに乗り換えた

$ cat /etc/shells # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh /usr/bin/screen $ chsh -s /bin/zsh Changing…

javascriptを用いた演習

を学校でしたので備忘録的にあげてみる。設定した高さとスクロールに応じてTopにジャンプするボタンを表示させる 文字の大きさを変動させる 乱数 ボタンの設定 凄くセマンティックスが直接的なシンタックスだなあ。是非ともC++を触りたくな〜る

treeコマンドを入れた備忘録

手持ちのOS Xでtreeコマンドが通らなかった。 $ brew install tree そのまま使ってみたら文字化けした。.bashrcに追記した。 alias tree="tree -NC -a -h" 文字化けを防止するついでにドットのつく隠しファイルを表示しカラーリングをしファイルサイズを表示…

javascript最速マスターからjavascriptを学ぶ

使う機会が増えたので、軽くシンタックスぐらいは把握しておこうという事で、一通り取り敢えず確認してみる事にした。適当にググり、一番上に出てきたものを参考とする。また、実行は一々ブラウザに表示させるのも面倒なので、jscをシェル上で走らせ、動作確…

Explicit operator bool overload実装の経緯と標準ライブラリによる使用例

C++

Explicit operator boolを用いた値の比較において、operator==を用いたif文は、オーバーロードなどを定義しない限り、コンパイルが通らない。 class A{ bool data; public: A(bool arg):data(arg){} explicit operator bool()const noexcept{return data;} }…

エイリアステンプレート

C++

なんだか忘れてしまっていたのか、知らなかったのか分からないが、便利なのでメモメモ。 template<class _Tp,class Allocator=std::allocator<_Tp>> std::vector<_Tp,Allocator> twice(std::vector<_Tp,Allocator> v) { for(typename std::vector<_Tp,Allocator>::iterator i=std::begin(v); i!=std::end(v); ++i)*i*=2; // なんだか視覚的にわかりにくい</_tp,allocator></_tp,allocator></_tp,allocator></class>…

初期化lambdaキャプチャー

C++

こんなものがあったのか。知らなかったのでメモ。 まず、初期化lambdaキャプチャーにより、以下のように書ける。 #include<functional> int main() { typedef std::function<int()> function_i; int data{}; function_i f=[i=data]{return i;},g=[data=data]{return data;}, h=[</int()></functional>…

Standard attributes(since C++11)

C++

独断と偏見による個人的に重要そうなattribute達のメモ。 noreturn void report(){throw "error";} int f(int x) { if(x>0)return x; report(); } int main() { f(1); } 例外送出をラップしたこのようなコードにおいては、コンパイラはその関数が返らないこ…

GCCインデントミスの警告機能

$ cat test.cpp int main() { auto f=[]{}; auto b=[]{}; if(true) f(); b(); } $ g++ -std=c++0x -Wmisleading-indentation test.cpp test.cpp: 関数 ‘int main()’ 内: test.cpp:5:2: 警告: this ‘if’ clause does not guard... [-Wmisleading-indentation]…

decltype(auto)

C++

仕事先の休憩スペースにて休憩時間中に投稿。 decltype autoの提案時、僕はC++に触れていなかったため、実装までの過程と脈略が分からず、その必要性がハッキリしなかったのだが、様々な資料を参考に、その必要性を学んだ。そのログをここに残してみる。 結…

気になる内容メモ about C++1z #5

他の作業をしながらエントリを書いているためケアレスミスがあったらも〜しわけない。 __has_include for C++17 Feature-testing preprocessor predicates for C++17 ヘッダーファイルが存在する場合インクルードする__has_includeプリプロセッサ機能。 #if …

気になる内容メモ about C++1z #4

C++

今回も仕事帰りの電車の中、スマホからの投稿。iPhoneを用いているのだが、コードを随時一応コンパイルにかけたいのもあってCppCodeというiOSのアプリを使ってみているのだが、非常に辛い。そもそも、エラーメッセージを見る事ができないし、当然だがC++1zに…

なんとなくブログタイトルの下にメニューバーを書いた

たまたまはてなブログのカスタマイズを見てみたらHTMLが書けるようだったので、ブログのタイトル下部に特に意味もない簡単なメニューバーを自前で書いて置いてみた。(PCのみ) <style> ul,li{ margin:0; padding:0; border:0; outline:0; font-size:100%; vertical-a…

OS X EI Capitan 10.11.2に最新版のGCCをBuildした作業ログ

最新版のファイルをダウンロード、解凍、整理。 $ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-6.1.0/gcc-6.1.0.tar.gz $ tar zxvf gcc-6.1.0* $ rm gcc*tar.gz && cd gcc-* 依存パッケージのインストールとシンボリックリンクを張る作業…

気になる内容メモ about C++1z #3

C++

C++1zで気になる内容のメモ。スマホからの投稿。 static_assertのメッセージ省略 式を真であるか否かを確かめるだけの時にコンパイル時アサートを使う時、メッセージを一々書かなければならないのが面倒くさい。C++14まではマクロを用いて実質的な省略を実現…

C++を思い出す・・・#3

C++

paiza.ioという実行結果を表示する恐らくC++11に対応していると思われる良いサービスを見つけたので実行結果が必要なものは今回からそれを使い貼り付けてみる事にした。 マニピュレータによる数値的な書式設定 取り敢えず動作が確認できるコードをざっと書い…

negative marginでul1つを3つのカラムに配置する。

negative margin、一見ややこしいが理解し始めると強力な気がする。 ただし無意味な多様はやはり厳禁なのかな。 一つのulで実装されたリストをネガティブマージンを使用して、3カラムに配置する方法のメモ。 個人的にHTMLのコンテキストを考慮すると一つのリ…

気になる内容メモ about C++1z #2

前のエントリから帰宅後、少しまだ時間があったので過去の気になる標準化委員会の出しているテキストを見ている。 C++ generic overload function (R1) P0051R1 関数オブジェクトをargumentsとしてぶち込んでその中でオーバーロード解決が最適なラムダを呼び…

気になる内容メモ about C++1z #1

C++

最近あまりジャンル的には無関係な映像制作や発信業務やその他諸々が毎日あったりで、中々デスク前に座って自分のやりたい事に没頭できないでいてモヤモヤしている。このエントリーも、仕事帰りの電車の中からの投稿になる。 こういう時は、以下のようなC++…