タグ

ネタとC++に関するmohnoのブックマーク (26)

  • C++erは全員戻り値型の後置記法を使おう - ペイントソフト開発日誌

    目次 目次 「戻り値型の後置記法」って何? 何が嬉しいの? 問題点 「戻り値型の後置記法」って何? C++11から導入された言語仕様です。 タイトルの呼び方は自分が勝手に使っているだけで、英語圏だと「trailing-return-type」がよく使われるらしい。 cpprefjp.github.io この仕様を使うと例えば以下のようなコードが int Add(int a, int b) { return a + b; } このようになります。 auto Add(int a, int b) -> int { return a + b; } 何が嬉しいの? この仕様はC++のメタプログラミングで戻り値型の推論を簡単に行う目的で使用されます。 なんだ、そんなC++上級者のための機能なんて下々の人間には関係ないじゃん、とお思いかもしれませんが、この機能にはもう一つわかりやすい大きなメリットがある

    C++erは全員戻り値型の後置記法を使おう - ペイントソフト開発日誌
    mohno
    mohno 2024/05/10
    Visual BasicもPascalも戻り値の型は後置だし、なんなら普通の変数/引数の宣言でも型は後置だけど、いまさらC++で使う気はしないというか、それならRustでもやってみるか、という(←やってみない)「耐えてください」
  • C++ コンパイル時パスワード認証 〜コードを不正コンパイルから守ろう!〜 - Qiita

    ラクラムシ「今回は C++ に関する内容ですね!」 謎の女性「どういった内容ですか?」 ラクラムシ「 C++ でコンパイル時にパスワードを要求する方法について説明していきます!」 謎の女性「よろしくお願いします!」 この記事では、C++ でコンパイル時にパスワードを要求する方法について説明します( UNIX 系の環境に限ります)。 コンパイル時パスワード認証 みなさんは、プログラミングをするときにソースコードを公開していますか? ソースコードを公開することで、ほかの人にバグを指摘してもらったり、新機能を提案してもらったりすることができます。 ソースコードを共有できるサイトはいろいろありますが、代表的なものに GitHub があります。 GitHub は無料で利用できるので、ソースコードを共有してみたいという人は使ってみましょう! しかし、「コードを見られるのはいいけど、勝手にコンパイルされ

    C++ コンパイル時パスワード認証 〜コードを不正コンパイルから守ろう!〜 - Qiita
    mohno
    mohno 2023/12/20
    「#include "/dev/stdin"」←な、なるほどね。笑った。
  • 例外を初めて実装した言語 - from scratch

    リクルートアドベントカレンダーの20日目の記事です。 adventar.org 最初にこの疑問を思ったのは、今も忘れない R-ISUCON 2021 というリクルートの社内ISUCONの運営で炎上していた時の話です。 ちなみに R-ISUCON 2021 は劇的な結果で終わっているので、興味のある方は見てみてください。 blog.recruit.co.jp R-ISUCON 2021 では、 Node.js (TypeScript), Go, Java の3パターンの実装が出てくることが通例になっていまして、今回は Java の実装から Node.js, Go に適用していた時に一緒に実装していたメンバーからの疑問が『例外には色々な議論があるけれど、「例外を初めて実装した言語」ってどういう気持ちで実装したんだろう』という話が挙げられたので、そのネタを持ってきました。 ちなみにここで指してい

    例外を初めて実装した言語 - from scratch
    mohno
    mohno 2021/12/25
    [PL/I]BASICが初出ってことはないだろうけど、最初にC言語を見たときは「ON ERROR GOTO」「RESUME」がない(setjmp/longjmpしかない)のは不便だと思ったような気がするな。
  • 100日後に退職する47歳 非公式 まとめ

    更新日:9月20日20時23分

    100日後に退職する47歳 非公式 まとめ
    mohno
    mohno 2021/09/21
    マジレスすると、18日目でC言語経験者を連れてきて、24日目で「Cです」と言っているのに、43日目でCでは出ないエラーが出てると思ったら、44日目からC++コンパイラを使ってる。48日目のmaybe_unusedは警告出さないだけだよ。
  • コンパイラのいじめかた / How to fight the compiler

    C++MIX #6

    コンパイラのいじめかた / How to fight the compiler
    mohno
    mohno 2019/11/21
    面白いけど面白いネタであって実用的な話ではないよね。関数呼び出しとかアスタリスクの数の制限も、関数名の長さとか、メモリ量とか、環境による違いに関係なく共通なのかな、とか。
  • C++完全理解ガイド Rev1.4.01 - Qiita

    はじめに C++を完全理解したので完全理解ガイドを書く。 最初に言っておくがタイトルは詐欺で、実際はポエムである。 僕は仕事C++を書いたことはないのでなんか変なことを言っているかも知れない。 ところで無職になったので、普通にC++で職がほしい。 2018年6月から受託で仕事をもらい、毎日C++17を書いています。 2018年9月から雇用され、毎日C++17を書いています。 かなり雑に書いているはずなので、コメント等でどんどんマサカリを投げてほしい。 僕は何者か 工学部を卒業して4年ほど高校の理科教師をやっていたが、現在無職になった人。 工学部を卒業して4年ほど高校の理科教師をやっていた。 最初は良かったのですが、授業に慣れ、このまま自分の成長が止まってしまうのかとなぁと思い、辞めて無職に。 一ヶ月無職を楽しんだあと、某から受託でC++を書く仕事をもらい、C++17を書いている。 主にツ

    C++完全理解ガイド Rev1.4.01 - Qiita
    mohno
    mohno 2018/03/28
    「C++はその進化とともに玄人に優しくなりすぎた」(Bjarne Stroustrup) あと Visual C++ はちょっとずつ実装進んでるけど、破壊的変更があるからC++17オプションが必要なんだな。まだ見ぬ江添本の評価は読んでから:-)
  • Can (a== 1 && a ==2 && a==3) ever evaluate to true?

    Moderator note: Please resist the urge to edit the code or remove this notice. The pattern of whitespace may be part of the question and therefore should not be tampered with unnecessarily. If you are in the "whitespace is insignificant" camp, you should be able to accept the code as is. Is it ever possible that (a== 1 && a ==2 && a==3) could evaluate to true in JavaScript? This is an interview qu

    Can (a== 1 && a ==2 && a==3) ever evaluate to true?
    mohno
    mohno 2018/01/17
    何この大喜利状態w そしてJavaScriptの質問にC++で答えてるヤツとかww
  • 国際標準規格の紹介 〜ISO国際標準規格プログラミング言語C++について〜

    はじめに こんにちは、C++標準会員の江添です。 今日は普段から表に出ている、閉鎖的なゲーム開発では使われていない開発環境についての紹介をします。 今回紹介するのは、ISO国際標準規格プログラミング言語の「C++」です。 なんと表の世界では、国際標準のプログラミング言語は、コンパイラーベンダーやC++利用企業と行ったC++に利害関係を持つ多数の代表が国際標準規格を制定しているのです。当たり前でしょ? C++は以下のような特徴を持っています。 エラーに気づきやすい静的型付け言語 C++経験者が理解しやすい言語仕様 OSに依存しない移植性の高いC++実装 実行環境に依存しないC++規格準拠の挙動の定義 C/C++の関数・クラスに最初からバインドされている 今でもクローズな実装の詳細のわからないプログラミング言語がたくさんあり、それらを使うデメリットは数多くあります。 国際規格の言語を使うのは様

    mohno
    mohno 2017/11/11
    あー、あれ、あとでツッコもうと思ってたら、タイムリーな記事が……と思ったら、そこが元ネタで書かれたものだったかw
  • thisを書く派?書かない派? - Qiita

    あすかです。 プログラミングしてる時、たまに気になる話を雑めに書いてみます。 (´・ω・`) C#、VBやJavaなど、クラスベースのオブジェクト指向言語を前提にした話ですが、this(Me)を書いているプログラム、そうでないプログラムをよく見かけます。 例えば、thisを書くのは このような場面ではthisを書きます。文法上の制約ですから当たり前です。 今回は、このようなものではなく、thisを書かなくてもいい場面の話です。 thisを書くメリット ちなみに私はthisを書く派です。 というのも、後でコードを読み返す時に、ローカル変数とフィールド変数の区別が一発で付くからです。 VSはthisを色分けしてくれますよね。 けっこう地味かもしれませんが、長いクラス(といっても500行を超えるようなクラスはめったに書きませんが)の一部分だけを読む時に、thisの存在はかなり役に立ちます。 他の

    thisを書く派?書かない派? - Qiita
    mohno
    mohno 2017/10/14
    (当然現場に合わせるけど、それを除けば)個人的には付けないことが多い。フィールド変数/プロパティと引数/ローカル変数に同じ名前は使わない。よい考察。
  • 小ネタ 「deconstruct」という単語 | ++C++; // 未確認飛行 C ブログ

    今日も、小ネタなような、C#7思い出話なような。 C# 7で、分解という機能が入ったわけですが、英語だと deconstruction という単語になります。 分解という機能のおさらいですが、以下のような書き方でタプルなどの型のメンバーを抽出できる機能です。 var (x, y) = tuple; これ、他のプログラミング言語だと、destructuring とか呼ばれたりしています。 といっても、文法上正式に destructuring と呼ばれているわけではないんですが(大体の言語は文法上は単に「pattern」とか呼ばれる機能)… まあ、解説ページなんかでは destructuring と呼ばれます。 で、今日、何が言いたいかというと、 deconstruct : デコンストラクト destructuring: デストラクト 並べるとわかりますかね。 「con」の有無。 decons

    小ネタ 「deconstruct」という単語 | ++C++; // 未確認飛行 C ブログ
    mohno
    mohno 2016/12/17
    "destructor"の元は、C#の元になったC++。日本語では構築子/消滅子という訳語が不評でカタカナになったという経緯も。圧縮/解凍も言葉は色々だったし、結局誰かが“こう”と決めるしかないんだろうな。
  • コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記

    僕は先日、「コンパイル時Cコンパイラ」なるプログラムをつくって、公開した。 「コンパイル時Cコンパイラ」とは、コンパイルするとC言語プログラムのコンパイルが行われるというようなC++プログラムである。 C++のコンパイル中に C言語プログラムのコンパイルを行う、 "コンパイル時Cコンパイラ"をつくりました #ELVMhttps://t.co/kKiLU3rLFX— うどん (@kw_udon_) 2016年11月18日 自分で書いておいてなんだが、「なんのこっちゃ」という感じではある。(ちゃんと記事中で説明する。) 実際、変なプログラムではあるのだが、とても嬉しいことに多くの人に面白がっていただき、予想だにしなかった大きな反響をいただいた。 Hacker Newsで1位になったり、LLVMの公式ブログで紹介されたり、果てはC++の作者であるBjarne Stroustrupにも言及されるに

    コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
    mohno
    mohno 2016/12/04
    constexprか!!……途中からわけがわからなくなってるんだが^_^; Turbo C++ の出力を最適化する VZ マクロを書いたのを思い出した(アセンブリ出力からpush/popを除くだけ、だけど)
  • Bjarne Stroustrupのプログラミング入門書の査読の感想

    C++の設計者ストラウストラップによるプログラミング入門書の最新版日語訳が、9月に @asciidwango から出版されます。 https://t.co/ssT9ubfXtT — アスキードワンゴ編集部 (@asciidwango) August 5, 2016 アスキードワンゴ編集部からBjarne StroustrupのProgramming -- Principles and Practice Using C++というの第二版の邦訳が出版される。初版は翔泳社が出していたが、C++14に対応した改訂版の第二版の版権が空いていたので、アスキードワンゴから出すための作業をしていた。私は邦訳の査読をした。 今年になってから半年は、ずっとこのの査読をしていた。このためにC++標準化委員会の最新の文書を把握する作業が数ヶ月ほど滞った。そして、この仕事は、私がドワンゴに入社して以来、最悪の

    Bjarne Stroustrupのプログラミング入門書の査読の感想
    mohno
    mohno 2016/10/11
    「結論から言うと、この本は極めて悪く書かれている。およそ悪書の見本のような本だ。悪文の集大成といってもよい。プログラミング言語入門用としても悪い」←そもそもC++言語自身が入門向きではないんだよなあ。
  • トップ

    WUBEN(ウーベン)Amazon.co.jp: WUBEN(ウーベン) : スポーツ&アウトドア 自轉車用ライト(今は売切れになってしまっている模様)。これまでは電池内蔵のものを使っていたのだけど、だいたい2-3年で電池がダメになって丸ごと交換になり不経済なので電池交換できるものに変更。これを自轉車用のホルダーで固定している。18650電池なら電池もちも良く快適。 【Amazon.co.jp 限定】クモリ(Kumori) チェアマット クリア PVC 床保護マット 90X120cm 厚み2mm キズ防止 凹み防止 エンボス ゲーミングチェアマット 床暖房対応 滑り止め 冷蔵庫 フロアマット(90X120cm)【Amazon.co.jp 限定】クモリ(Kumori) チェアマット クリア PVC 床保護マット 90X120cm 厚み2mm キズ防止 凹み防止 エンボス ゲーミングチェアマッ

    mohno
    mohno 2016/10/11
    監修の江添亮氏がさんざん愚痴ってたやつだな→https://cpplover.blogspot.jp/2016/08/bjarne-stroustrup.html 「これは標準のヘッダ」「何と標準関数」←そんなワケがない。モウロクしたStroustrup氏が教材にでも使っているのかな。
  • シフト演算子使うなって言われた

    リーダー「ここの処理普通に書いて」 俺「どこがおかしいんですか?」 リーダー「シフト演算子使わないで。可読性下がるから。」 俺「…」 これって俺が悪いのか? 別にコーディング規約にそんなこと書いてないし、 この仕事やっててシフト演算子ごときで可読性って呆れてしまった。 やってられんわ。

    シフト演算子使うなって言われた
    mohno
    mohno 2016/05/07
    言語も文脈もわからないが“ここで”シフト演算子を使うな、と言われたのかどうか。ビット列操作で使うなと言われる気もしないが、乗除算代わりに使うものじゃないし、それくらいコンパイラが最適化してくれそう。
  • Microsoft – クラウド、コンピューター、アプリ & ゲーム

    すべての Microsoft 製品 Global Microsoft 365 Teams Copilot Windows Surface Xbox セール 法人向け サポート ソフトウェア Windows アプリ AI OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox Live Gold Xbox とゲーム PC ゲーム Windows ゲーム 映画テレビ番組 法人向け Microsoft Cloud Microsoft Security Azure Dynamics 365 一般法人向け Microsoft 365 Microsoft Industry Microsoft Power Platform W

    Microsoft – クラウド、コンピューター、アプリ & ゲーム
    mohno
    mohno 2016/03/04
    「Turbo C++ or C for Windows 7, 8, 8.1 and 10 32/64-bit」って、なんで CodePlex にあるんだ!! ……と思ったら、ただの Turbo C++ 3.0 for DOS を呼び出すランチャーアプリだった。でも動くんだな。懐かしい。
  • よいコード、わるいコード

    論文紹介:MeMViT: Memory-Augmented Multiscale Vision Transformer for Efficient Lon...Toru Tamaki

    よいコード、わるいコード
    mohno
    mohno 2015/05/12
    これ、ごく一部の話、だよね。そもそもデータメンバを公開するなよ、とか。VC++ のコード分析とか MISRA C++ ガイドラインとか、大量の“ルール”があるし。しかし、今は && 演算子なんてあるんだな。
  • メンバー関数へのポインターを返すメンバー関数へのポインターを返すメンバー関数

    class Foo;が存在したとして(1)Fooのメンバ関数ポインタ(2)を戻すメンバ関数のポインタが欲しいと思った(なお(1)で戻すメンバ関数もFooのメンバ関数ポインタを戻す)のだが、どうあがいても記述出来ないものだったりするのだろうか? ようするに、以下のようなことがしたいわけだ。 class Foo { public : // メンバー関数a void a() { } // メンバー関数aへのポインターを返すメンバー関数b ??? b() { return &Foo::a ; } // メンバー関数aへのポインターを返すメンバー関数bへのポインターを返すメンバー関数c ??? c() { return &Foo::b ; } } ここで、???の部分に戻り値の型を記述しなければならない。 もちろんこれは記述できる。ただしその記述は、C++の規格のバージョンにより難易度が異なる。 C

    mohno
    mohno 2015/03/25
    別にC++03だとしても「どうあがいても記述出来ないもの」と考えたりはしないと思う。仮想継承とか多重継承しててもこういう型を処理できるようにする実装は大変だな、とは思うけどね。
  • if式 / if文 の条件節で、左辺に定数を書くべき言語はあるか? @ajiyoshi.gist

    gistfile1.md if式 / if文 の条件節で、左辺に定数を書くべき言語はあるか? @ajiyoshi.gist twitterからながれてきたこの話題。昔のCコンパイラは、if文の条件節で代入を書いても文句を言わなかったので、このようなコードに何の警告も出なかった。 #include<stdio.h> int main() { int x = 0; /* おそらく意図と違う。 x == 1 と書くべきであった これでは常に実行されてしまう */ if ( x = 1 ) { puts("残念"); } } 「これをこのように書けば、コンパイルエラーになり、ある種の誤りをコンパイラに見つけさせることができる」というのが、「老害」とされる人の主張である。 /* これはコンパイルエラーになる */ if ( 1 = x ) { puts("残念"); } もし使っている環境が「コンパ

    if式 / if文 の条件節で、左辺に定数を書くべき言語はあるか? @ajiyoshi.gist
    mohno
    mohno 2014/12/13
    「if (0 == a)」は嫌い。「0 <= a < 10」という条件を、どう表記するかという問題もあるな。私は「0 <= a && a < 10」。
  • C++ のソースに twenty one と書いたら 21 になるようにする - Qiita

    が面白かったので書いてみた。 目的は、 one や twenty one をソースコードに直接書けるようにすること。 twenty one / three を 21/3 と解釈すること。 辺り。 念の為に書いておくと、何の役にも立たない。 version 1 -- operator() #include <iostream> struct numbase { int m; numbase( int m_ ): m(m_){} int value() const { return m; } virtual ~numbase(){} }; struct num : public numbase { num( int m_ ): numbase(m_){} }; struct ten : public numbase { ten( int m_ ): numbase(m_){} num oper

    C++ のソースに twenty one と書いたら 21 になるようにする - Qiita
    mohno
    mohno 2014/08/25
    operator() の使い方に脱帽した:-O / operator"" だと:-O
  • Ryou Ezoe | ask.fm/EzoeRyou

    Free as in Freedom. C++, HTML5, CSS, JavaScript, Ubuntu GNU/Linux, Vim, Dwango, GitHub: https://t.co/nJZPViZu0c

    Ryou Ezoe | ask.fm/EzoeRyou
    mohno
    mohno 2014/06/06
    「苦手なことなんですか/タバコ」「彼女はいますか?/いない」「英語を話すことはできない」「ドワンゴの「これはイマイチだな」/EXCEL方眼紙」「プログラミング歴/15年」「勤務時間外」「メタプログラミング/賛成派」