タグ

2015年6月9日のブックマーク (3件)

  • 【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)

    私はC++歴3年の学生趣味プログラマーです。 「C++はなぜヘッダと実装を分けなくてはならないのか/そもそも当に分けなければならないのか」という質問です。 C++といえば、ヘッダー部と実装部を.hファイルと.cppファイルに分けることが一般的とされている言語ですが、 これは同じオブジェクト指向言語のC#やJavaにはない特徴です。 そのせいでC++使いたちは今日もcppファイルとhファイルを行ったり来たりしながらコーディングする羽目になっています。(そしてVS使いはF12とCtrl+-を得意気に連打しています。) 私にとってもそれが当たり前になって久しいですが、 時々C++を学び始めたばかりの後輩から「なぜヘッダファイルに実装を書いてはならないのか」「なぜC++は二度も同じコードを書くことを強いるのか」と質問を受けます。 私はそのたびに「実装の隠蔽化」とか「循環参照の危険が云々」とか「そ

    【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)
    outland_karasu
    outland_karasu 2015/06/09
    C/C++では定義と宣言が別のものとして考えられていて、宣言を書くのがヘッダで定義を書くのがソースファイルという事じゃないかな。リンカの動作も絡んできそう。新しい言語は宣言を自動生成してる。
  • Deep Learning のフレームワーク Chainer を公開しました - Preferred Networks Research & Development

    こんにちは、得居です。最近は毎晩イカになって戦場を駆けまわっています。 日、Deep Learning の新しいフレームワークである Chainer を公開しました。 Chainer 公式サイト GitHub – pfnet/chainer Chainer Documentation Chainer は、ニューラルネットを誤差逆伝播法で学習するためのフレームワークです。以下のような特徴を持っています。 Python のライブラリとして提供(要 Python 2.7+) あらゆるニューラルネットの構造に柔軟に対応 動的な計算グラフ構築による直感的なコード GPU をサポートし、複数 GPU をつかった学習も直感的に記述可能 ニューラルネットをどのように書けるか 次のコードは多層パーセプトロンの勾配を計算する例です。 from chainer import FunctionSet, Vari

    Deep Learning のフレームワーク Chainer を公開しました - Preferred Networks Research & Development
  • 科学の最重要未解決問題『意識はいつ生まれるのか――脳の謎に挑む統合情報理論』 - HONZ

    「意識のハードプロブレム」とは何かご存知だろうか。端的に言うと「物質である脳が、どのようにして非物質である意識体験を生み出しているのか」という脳科学の未解決問題のことだ。哲学者のデイヴィッド・チャルマーズによって1994年に提唱され、それまで神経科学的な分析によって意識に関する謎はすべて解けたと考えていた研究者たちに大きな衝撃を与えた。 彼らが解決済みだと考えていたのは、あくまで「脳内で情報がどのように処理されているか」という機能的な問題だけであり、「意識はなぜどのように生じるのか」というもっとも根的な問題は、実は手つかずのままだった。いや、科学者たちはあえて目を背けていた、というのが正しいかもしれない。 意識の科学的な起源に関する問いは300年以上をさかのぼり、18世紀初頭ライプニッツは次のように述べている。 視覚や聴覚などの感覚意識(中略)が、どのような力学的な仕組みから形成されるの

    科学の最重要未解決問題『意識はいつ生まれるのか――脳の謎に挑む統合情報理論』 - HONZ