Logo

0x35の日記

  • ランダム
  • アーカイブ
  • RSS
  • Ask me anything

Q:WOW @ tumblrdatinggame(.)com WTF is this.. my little brother's roommate is on this and I think I saw you too lol

匿名

fuck off :-)

  • 2日前
  • 固定リンク
  • Share
    Tweet
Comments

ps -ef x| grep “MyHeart” | awk ‘{print $2 }’ | head -n 1 | xargs kill

    • #joke
    • #linux
  • 1週間前
  • 固定リンク
  • Share
    Tweet
Comments
220 名前:名無しさん@涙目です。(茨城県)[sage] 投稿日:2011/04/22(金) 01:31:10.42 ID:UGcv/psN0

初級者「C++全然わからんw」
中級者「C++全然わからんw」
上級者「C++全然わからんw」
標準化委員会「C++全然わからんw」
VIPPERな俺 : C言語の魅力 (via mcsgsym)

(valvallowから)

出典: caravanserai

    • #link
  • 1週間前 > caravanserai
  • 283
  • 固定リンク
  • Share
    Tweet
Comments

A.V.A近況

Evernoteにまとめた。

そういや最近技術系の件はModern C++ Designを今頃読み進めている。で、考察とかもガシガシ入れてるのだが完読してからリンクとか貼ろうと思う。今半分は読み終わっているがじっくり読み進めていきたい。

    • #fps
    • #日常
  • 1週間前
  • 固定リンク
  • Share
    Tweet
Comments

clangとかlinux

今頃。取りあえず面倒なので

sudo apt-get install clang

したのだがバージョンが3.0。いろ いろサポートの具合を見てみたが実装してないとかあるみたいなのでしょうがないビルドしようという事でビルド。initializer-listのサポートがoverflowの方には3.0でとアンサーされてるけどsupport in clang見る限りは3.1とあるのだが….よう分からん。

取りあえず取得にはgit用いた。Getting Startedそのままで。後は適当にビルド作業用ディレクトリ作って普通にconfigureしてmakeしてmake install。凄く時間かかった。でまぁUser defined literalとか弄ったり。後、これからすることメモ

  • http://d.hatena.ne.jp/alwei/20110821/1313937500
  • http://arukansoft.net/2011/03/clang.html

ところでこの前Ubuntuを12.04にアップグレードしたのだが無線LANの速度が異常に遅い。しかしつなげる事には繋げるので何かドライバ誤認識でもしてるんだろう…後に見ないと。

後linux mintの日本語関連で参考になった:http://pc-usr.seesaa.net/article/239894581.html

なんかグダグダなエントリだ……

    • #cpp
    • #linux
  • 3週間前
  • 固定リンク
  • Share
    Tweet
Comments

最近Evernoteの方に参考書読みながらの考察などをまとめている。実に便利だ。

そういえばGTX690がもう発表されたとか友人から。…というか取りあえずグラボ欲しいでござる。

    • #日常
  • 4週間前
  • 固定リンク
  • Share
    Tweet
Comments

cplusplus.comからメールが返ってきた

cplusplus.comへメールをポストの件。返信きた。

Hello, and sorry for the late reply.
I have just corrected this error.
Thanks for reporting it!
Best regards,

とあるので指摘通りページが修正されたみたい。確認したところ修正されていた。良かった良かった。

修正前:

修正後:

http://www.cplusplus.com/reference/std/iterator/back_insert_iterator/

まぁ修正されたので良かった。それにしても、何故に誰も指摘しなかったのだろうか。

    • #cpp
    • #日常
  • 1ヶ月前
  • 固定リンク
  • Share
    Tweet
Comments
http://lsr33.deviantart.com/art/PGM-238-Mini-Hecate-155927956
Pop-upView Separately

http://lsr33.deviantart.com/art/PGM-238-Mini-Hecate-155927956

    • #Favorite Picture
  • 1ヶ月前
  • 固定リンク
  • Share
    Tweet
Comments

GNU GLOBAL

http://www.machu.jp/diary/20090307.html#p01

参考に導入。本家からwgetした。殆どそのままでおkだが僕の環境でコンフィグ通そうとしたらcurses library is required but not foundと言われたので多分いらないものも紛れ込んでいるだろうが、

$ sudo apt-get install ncures*

としてconfigureを通した。 後vimプラグインのコピーのパスも若干記事と違ったのでメモ。まぁ2009年の記事だし違って当然。

$ cp /usr/local/share/gtags/gtags.vim $HOME/.vim/plugin
$ cp /usr/local/share/gtags/gtags-cscope.vim $HOME/.vim/plugin

GNU GLOBALを使うとGPATH,GRTAGS,GSYMS,GTAGSというファイルが出来る。操作中は良いのだが個人的には操作後は邪魔なので消すことになるだろうと。gtags_cleanとaliasしておいた。

$ echo "alias gtags_clean='ls | egrep -v -E \".cpp$|.hpp$|.java$|.class$|.php$\" | xargs rm'" >> ~/.bashrc
    • #linux
    • #cpp
    • #php
    • #Java
  • 1ヶ月前
  • 固定リンク
  • Share
    Tweet
Comments

奇妙で怖いC++

2010年の7月頃に納涼! プログラミング怪談大会!というのをやってみたみたいで、もう結構前の事だがまとめを見て一人でうおおとなってますた。

取りあえずまずADL。function arguments typeによってcallするfunctionを探索するというのは分かってたが

  • http://ideone.com/pLK0g

template argumentsにfunction typeを渡すとそれのargumentまでassociated namespaceになるんだとか。template argumentsに渡した全てを把握しきってしまうという….。

template argument が関数の型の場合、その引数の型の名前空間もassociated namespaceになるってことかなこれ… http://ideone.com/pLK0g

— でちまるさん(実際かわいい)さん (@decimalbloat) 7月 3, 2010

ゾクゾクするなぁ…。ただし

3.4.2 読んでも基底クラスがtemplate-idのときにそのtemplate argumentsに関するnamespacesがassociated namespacesになるようには読めないのだけれど #proghost

— 梶本裕介さん (@uskz) 7月 3, 2010

念のためComeau C++で試したところやはり最初のやつのfは弾かれた。やっぱGCCのバグっぽい。C++コンパイラのバグに遭遇するのはこれでいったい何度目だろう。 #proghost

— 梶本裕介さん (@uskz) 7月 3, 2010

多分http://ideone.com/C8XnYのxxx::fの事で継承先のtemplate argumentsの関数型内のパラメータでxxx::aaaとしているがそこまではassociated namespacesには入らないということ….なのかな…。なるほどわからん。

次にこんなの。

switch(2) { case 1,2,3: puts(“1 or 2 or 3”); default: puts(“others”); } このコードを Borland C++ でコンパイルおよび実行するとその出力結果は “others” となります。 #proghost

— 道化師HDさん (@wraith13) 7月 3, 2010

あ、break; が抜けてた。ちなみに switch(3) だと “1 or 2 or 3” が出力されます。これはどういう事かと言うと case 1, 2, 3: がどうもカンマ演算子によって case 3: のように解決されてしまっているものと思われます。 #proghost

— 道化師HDさん (@wraith13) 7月 3, 2010

そうなんだ…手元にBorland無いのでアレですが。怖い。

GCCはstd::vector<int> v; for (int i = 0; i < v.size(); ++i)みたいなsignedとunsignedの比較で警告出してくれないので怖い #proghost

— Faith and Braveさん (@cpp_akira) 7月 3, 2010

そうですな… -Wallオプションつければ警告吐いてくれるようにはなりますが、標準でするべき。

次。

  • http://codepad.org/OT1Fny8m

え。4.1.2がw まぁ最新だと1と出力されます。次。

  • http://ideone.com/EmXrO

これは何も出力されない。僕は何分か考えて理解できた。多分あってると思うので一応解説。まず11行目。これはコンストラクタを呼び出しているように見えるがそうではなくHoge型が戻り値のパラメータ無しローカル関数プロトタイプ宣言という意味になる。これは普通に理解できる。理解に時間がかかったのは12行目。これもコピーコンストラクタが呼び出されるようにも思える。lvalueに対してconst&で受け取ることも可能だ。しかし出力はされない。

h2 はなぜ出力無いのか分からない…。んん…? RT: @melponn: 以前の奴をネタとしてタグ付けておこう http://ideone.com/EmXrO #proghost

— RiSKさん (@sscrisk) 6月 14, 2010

どうなってるのかというと結論からいうとこれも関数宣言とみなされてしまうということ。Hoge型が戻り値の関数宣言となる。でlvalueを渡しているかのように見える部分はそうではなく、Hoge型が戻り値のパラメータ無しの識別子のない抽象宣言子となる。つまり12行目の

Hoge h2(Hoge());

は

Hoge h2(Hoge(*)());

と同じということになる。….のだと思う。そう考えた。あってるのかどうかアレだけどこうとしか僕は思いつきませんでした。

  • http://codepad.org/yYaZIeTH

これは…リンクとかの関係だろうと。

….と色々面白かった。

最後にちょっと巡回してADLに関して取り上げている分かりやすい/おもしろいページをば。

  • ADL簡単解説:http://d.hatena.ne.jp/faith_and_brave/20071219/1198055224
  • using-directive/declarationによるADL回避の整理:http://d.hatena.ne.jp/uskz/20060712/p1
  • n2930:Range-based for loopについて:http://cpplover.blogspot.jp/2009/08/n2930-range-based-for-loop.html

一番上が分かりやすく解説されているサイト。二つ目がusing namespace~、usingを用いてADLを回避し意図しない動作をさせる前にエラーを出させるまとめ。最後がRange base forのADLによって起こるC++03との互換性問題とこれからも起こりうるassociated namespaceに入ることによる問題を解説してくださっている。

後ADLをまとめた感じのコード。これなら誰でもわかる気がする。

#include<cstdio>
namespace aho{
	struct X{};

	template<class T>
	void call(T&){std::puts("UHO!");}
};

namespace Foo{
	template<class T>
	struct foo{};
}

int main()
{
	{
		Foo::foo<aho::X> x;
		call(x);
	}
	{
		Foo::foo<void(aho::X)> x;
		call(x);
	}
	{
		aho::X x;
		call(x);
	}
}

C++怖い。というか皆さん凄すぎて怖い

#追記

@uskzさんが言っていた、なるほどわからんだった件について。書いて検討してみた。

#include<iostream>
 
namespace ns{
        struct hoge{};
        template<class T>
        void f(T&){std::cout<<"ns::f()"<<std::endl;}
}
namespace ns1{
        template<class T>
        struct hoge1{};
        template<class T>
        void f1(T&){std::cout<<"ns1::f1()"<<std::endl;}
}
namespace ns2{
        struct hoge2:ns1::hoge1<void(ns::hoge (*)())>{};
        template<class T>
        void f2(T&){std::cout<<"ns2::f2()"<<std::endl;}
}
namespace ns3{
        template<class T>
        struct hoge3{};
}
 
int main()
{
        ns3::hoge3<ns2::hoge2> a;
        //f(a); // ns is not associated namespace
        f1(a); // ns1 is associated namespace
        f2(a); // ns2 is associated namespace
}

http://ideone.com/vBLjA

書いた結果を見てみる限りは上記に書いてある認識でよさげ。

コードの下にあるnote内英文の単語とかのexpressionがあっているかは知らない( attainとかってこうやって使う単語なのだろうか。

    • #cpp
  • 1ヶ月前
  • 1
  • 固定リンク
  • Share
    Tweet
Comments

そういや何日か前にevernoteはじめた。普通の勉強のことやらdisりやらスクラップ化する予定。(既にしている)

    • #日常
  • 1ヶ月前
  • 固定リンク
  • Share
    Tweet
Comments

適当なC++コードジェネレータ

を作った。睡眠コーディングで作ったのでもうなんか色々コードがあれなのだが。単に引数にとったものをコードの断片に入れ込んでそれをファイルに作るだけ。といってもちょくちょくある確認コードやサンプルコードなどを書いたりするとき、やはり何度も同じことを書いたりして面倒くさい。なのでということで。

しかしこれコードが本当酷い。

具体的な使い方や動いてるのはこちらを見てください。

….それにしても眠すぎて死にそうだ。

    • #cpp
  • 1ヶ月前
  • 固定リンク
  • Share
    Tweet
Comments

mmap()やbrk()などのメモリ確保システムコールには、manページに書かれていない重要なお約束があります。それは「確保されたページはゼロ初期化してからユーザー空間に返さないといけない」ということです。

 カーネルは、自分が使わないページにどんなゴミが入っていても気にしないし、ユーザー空間アプリもmalloc()の戻りアドレスがゼロ初期化されていることなんて期待していません。にもかかわらずなぜこれが必要かというと、メモリを確保できるってことは、そのメモリを解放したプロセスが存在していたということを意味するからです。

 解放されたメモリには、クレジットカードの番号やパスワード、「いちゃいちゃうふふ」な内容の恥ずかしいメールやらが入っているかもしれません。悪意のあるプロセスがmmap/munmapを繰り返すだけで個人情報が収集できてしまうのは問題ですね。そういう事情もあり、典型的なLinuxデスクトップでは、「ゼロしか入ってないページ」を何千ページも持っています。大きめにバッファをmalloc()するアプリなんて山ほどありますからね。

怒りのLinus——メンテナにかんしゃく玉爆発(2/2) − @IT (via otsune)

(otsuneから)

出典: atmarkit.co.jp

    • #linux
  • 1ヶ月前 > otsune
  • 52
  • 固定リンク
  • Share
    Tweet
Comments

emplace系統のinserterとか

emplace_back_inserterとかあるだろうなーとか思ってたら無かったので作った。こんな感じに普通に。

#include<miko/rall_cout.hpp>
#include<miko/iterator.hpp>
#include<memory>
#include<functional>
#include<algorithm>
#include<vector>
#include<list>
#include<array>
#include<string>

int main()
{
	std::array<std::string,4> strings{"hoge","aho","foo","uho"};
	std::list<std::string> li;
	std::copy(std::begin(strings),std::end(strings),
			miko::emplace_front_inserter(li));
	miko::rall_cout<<li; // "uho","foo","aho","hoge"
	

	std::vector<size_t> v;
	std::transform(std::begin(strings),std::end(strings),
			miko::emplace_back_inserter(v),
			std::mem_fn(&std::string::length));
	miko::rall_cout<<v; // 3,3,3,4

	
	std::vector<std::string> m;
	for(auto i:strings)
		miko::emplace_inserter(m,m.end())=i;
	miko::rall_cout<<m; // "hoge","aho","foo","uho"
}

しかしgccのコンテナあたりを見てみたらC++0xオプション付いてたらpush_backだろうがなんだろうか内部的にはemplace_backしてるのとかあってちょっと…と思った。 後gcc4.6.1ではsetやらあたりにemplaceがまだ無いのか? vectorにはあったが。….なんという。とにかく4.7にしよう。

    • #cpp
  • 1ヶ月前
  • 固定リンク
  • Share
    Tweet
Comments

cplusplus.comへメールをポスト

した。初めてこれ間違ってるんじゃないのメールを英語で送ったのでなんだか緊張したが。

まず自分が間違っていると思っていることがあっているのかどうかに自信が無いというわけではないが初めてなのでこういうの不安でしょうがないのでフォーラムに投稿。falgonが僕。0x35の前はfalgonでやっていたのでそのまま前のものになっているが。

http://www.cplusplus.com/forum/lounge/68479/

falgon (2) Apr 16, 2012 at 10:15amHello.
I am contribution with this first. And I am a Japanese high school student so,I can’t write English well. sorry….

It is main subject from the following.

It is about the item of back_insert_iterator which has taken this site. 
URI:http://www.cplusplus.com/reference/std/iterator/back_insert_iterator/

I think that member initializer of that is wrong.

explicit back_insert_iterator (Container& x) : container(x) {}

I think this code is wrong.

explicit back_insert_iterator (Container& x) : container(&x) {}

I think that it is the upper code surely.

I am sorry if it has said that it is wrong.

cplusplus.comを今現在2011/4/16に見るとback_insert_iteratorのメンバイニシャライザがアドレスを取っているのではなくオブジェクト自体になってしまっている。なのでそれを指摘してみた。 すると。

firedraco (4874) Apr 16, 2012 at 10:28amふむ、そうですね。falgonさんは正解だと思います。

ページの下に「Spotted an error? contact us」で、そんなことを伝えられます。

悪い日本語ですみません。私も勉強中ですが・・・。

Should probably put English here…

Hm, I think you are correct.

You can report this kind of stuff using the “Spotted an error? contact us” at the bottom of the page.

Sorry for my poor Japanese. I’m still learning too.

返信きたと思ったらいきなり日本語書いてあってビビったw

一応それに対して僕の返信。

falgon (2) Apr 16, 2012 at 10:32amI understood. 
Thank you.

分かりました。ありがとうございます。

全く悪くはありません。とても上手だと思います:-)

というわけみたいなので早速cplusplus.comにメールを送った。どれくらいで返信くるんだろーう。

何か取りあえず英語はまぁ若干自信あるけどいざネイティブの方へ向けてとかプロフェッショナルな方へ向けて英文を書くとなるとやはりなんだか緊張した。まぁ伝わったみたいなので良かった。

しかしこれ一番はじめの動名詞に少なくともすべきだったな….

    • #cpp
    • #日常
  • 1ヶ月前
  • 固定リンク
  • Share
    Tweet
Comments
← 最近の投稿 • 以前の投稿 →
ページ 1 の 18
Avatar 高二が書いてる日記。アニメとかゲームとかプログラムを適当に発散。趣味でプログラミングなのでそんなレベルであるのをご理解下さると嬉しゅうございます。

Me, Elsewhere

  • @0x35 on Twitter
  • Facebook Profile
  • 53falgon53 on Youtube
  • falgon53 on Digg
  • falgon on Soundcloud
  • Google
  • My Skype Info
  • falgon on github
$falgon 's study旧ブログはこちら

Tag List

フォロー

I Dig These Posts

  • 画像 から sieben002

    twinsyu2:

    651e9bf9.jpg

    画像 から sieben002
  • 画像 から sieben002

    utampo:

    (via 1girl argyle argyle legwear ass bear panties bear print blush book bottle broom brown hair hair ornament ha

    画像 から sieben002
  • 引用 から highlandvalley
    “15年前はまだ大抵の人が「総理大臣はそれなりに偉い」と思っていた”
    — ここ15年で変わった常識ってある? たま速報 (via mcsgsym)
    引用 から highlandvalley
  • 引用 から highlandvalley
    “同じ人間なのに、インド人が飲んでも大丈夫な生水を日本人が飲めば体を壊す理由を知っていますか? 「飲めないインド人は死んでしまうから。」です。 それでは何故日本人はヨーロッパでは考えられないほど過密な労働をするか知っていますか? はいそうです「働けない奴は死んでしまうから。」です。”
    引用 から highlandvalley
もっと見る →

Links

gcc
VC++
Boost
boostjp
cplusplus.com
Chrome
Firefox
  • RSS
  • ランダム
  • アーカイブ
  • Ask me anything
  • モバイル

Copyright (C) 2011 0x35 All Rights Reserved.. Effector Theme by Carlo Franco.

Powered by Tumblr