タグ

c++に関するsyan0のブックマーク (77)

  • Polygonising a scalar field (Marching Cubes)

    Also known as: "3D Contouring", "Marching Cubes", "Surface Reconstruction" Written by Paul Bourke May 1994 Based on tables by Cory Gene Bloyd along with additional example source code marchingsource.cpp An alternative table by Geoffrey Heller. rchandra.zip: C++ classes contributed by Raghavendra Chandrashekara. OpenGL source code, sample volume: cell.gz (old) volexample.zip: An example showing how

  • 非推奨だった bool 型に対するインクリメント演算子を削除 [P0002R1] - cpprefjp C++日本語リファレンス

    概要 C++17ではbool型に対する前置および後置のoperator ++を削除する。 bool型に対する前置および後置のoperator ++とはC++98の時点で非推奨になっていた機能である。 具体的にどのような働きをするのかというと、以下のように値をtrueに書き換える機能をもつ。 #include <iostream> int main() { bool b = false; const bool b1 = ++b; std::cout << std::boolalpha << b1 << std::endl; // => true const bool b2 = ++b; std::cout << std::boolalpha << b2 << std::endl; // => true }

    syan0
    syan0 2017/07/18
  • C++のコンパイルエラー爆発を競うコンテスト - Faith and Brave - C++で遊ぼう

    Results of the Grand C++ Error Explosion Competition 少し前に、C++のコンパイルエラーの長さを競うコンテストが開催されていました。 受賞のカテゴリは2つあり、ひとつめは最小コードで最大のコンパイルエラーを出した人、もうひとつは芸術的な評価による受賞です。 最小コードで最大のコンパイルエラー この部門で優勝したのはEd Hanwayさんという方で、ソースコード量に対して59億倍のコンパイルエラーメッセージを出力したそうです。 それには、自身を2回インクルードするという手法が使われていたそうです。 #include ".//.//.//.//jeh.cpp" #include "jeh.cpp" 次点として、インクルードに後方参照を使用した、7億9千万倍のコンパイルエラーを出力するコード: #include "set>.cpp" #incl

    C++のコンパイルエラー爆発を競うコンテスト - Faith and Brave - C++で遊ぼう
    syan0
    syan0 2017/06/23
  • C++の演算子のオーバーロードの悪いところってなんですか?

    質問内容 「C++の演算子のオーバーロードは悪いのところ」はどこですか? 質問の背景 なんで、そもそもC++の演算子のオーバーロード悪いと思っているかというと、 以下のサイトで、 これを見て「あっ、C++の演算子オーバーロードだ、殺せ!」となったキミ、ちょっと待ってほしい。実はね... http://d.hatena.ne.jp/xef/20130309/p1 という記述を前に見たことがあったからです。 笑い混じりに「殺せ」と使っている様子をみると、C++演算子の演算子のオーバーロードに多少問題があるのだろうなと思いました。 問題になるケースをC++のコードで、書いていただけるとありがたいです。 (追記)ベストアンサーについて (追記)2017/03/21 11:08 書き込んでくれた皆様、 書き込もうとしてやっぱりやめってしまった方、 この質問について真剣に考えてくださった方、 ありがと

    C++の演算子のオーバーロードの悪いところってなんですか?
    syan0
    syan0 2017/03/23
  • OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita

    imguiとは imguiは、OpenGLやDirectXなどの描画環境の中で動くGUIフレームワークです(vulkanも?)。 "Immediate Mode GUI"と呼ばれるパラダイムにより、大変短く直感的なコードでGUIを構築できます。 どういうGUIコンポーネントが使えるかは、リポジトリのスクショを見ていただいたほうが良いかと思います。 デバッグや調整、テスト用のGUIを構築することが目的のフレームワークです。 環境 今回この記事ではwindows10, vs2015, Cinder(0.9.0)上でサンプルを作成しました。 Cinder用には専用のimgui拡張があるため、そちらを使用します。 https://libcinder.org/ https://github.com/simongeilfus/Cinder-ImGui的な考え方や、imguiAPIは同じですが、

    OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita
  • C++のcerealのシリアライズが快適すぎるやばい - Qiita

    cerealって? cerealとは、C++11用のjson, xml, binaryシリアライズライブラリです。似たようなものにboost::serializationや、googleのprotocol buffersなどがあります(ほかにもまだありそうですが)。 ではなぜcerealなのか? cerealには他の二つにはない利点として、 ヘッダーオンリー ライブラリが小規模 というのがあります。 この性質は移植作業を大変楽にしてくれます。 というのも自分、boost::serializationをしばらく使っていたのですが、iOSでも使おうとしてビルドで問題がおきて、もっと良いシリアライズライブラリがないものかと探した経緯があります。 シリアライズしたいケースとして、異なるプラットフォーム同士で通信するプログラムを作りたいケースがありますので、この性質は大いに作業を楽にしてくれます。

    C++のcerealのシリアライズが快適すぎるやばい - Qiita
    syan0
    syan0 2016/09/07
  • ネタの蛇足的解説 - きままにブログ

    記事はhttps://twitter.com/staryoshi/status/669763731610431488のたくさんの反響を記念して蛇足的な解説を並べたものです。あまりC++に興味を持っていなかった人もこれを見て興味を持っていただけたら幸いです。もちろん、実際にはこれらの表記で困ることはないのですが、こんなこともできてしまうという一種の例でもあります。 このコラの目的は、同一の識別子を用いて関数呼び出しに見えるが実際の定義の仕方は異なるというものはどのくらいあるのか、というのが発端です。ちなみにアイディは宇月まりな on Twitter: "僕が古文を嫌う理由 https://t.co/XiONjbFDYb"より。全く外見は同じだが中身が違う……C++だ、と思って作りました。 当然、いかに目をこらしても文字に違いはありませんので文脈から読み取るしかありません。 その前に 今回、

    ネタの蛇足的解説 - きままにブログ
    syan0
    syan0 2016/01/28
  • 2015/12/03 – rarilog

    はい。 この記事は、D言語くん Advent Calendar 2015 の 3 日目の記事です。 当は今年作ったD言語くんの動画やイラストを並べるだけにしようと思っていたのですが、D言語くん Advent Calendar が Qiita に存在する以上はプログラムチックなことを書かねばならん気がした (というか中の人に若干釘刺された) ので、C++ で UE4 のエディタ拡張を書いてみました。 UE 4.9.2 を使用しています。 UE4 のエディタ拡張について ゲームエンジンのエディタ拡張というと Unity のイメージが強いかと思いますが、UE4 でもできます。 Unreal Fest 2015 にてエディタ拡張に関する講演1があり、YouTube に動画が公開されているので、エディタ拡張でどのようなことができるのか興味がある人は、見ることをオススメします。 上記の動画では、詳細

  • 高速文字列処理ライブラリを作った - prime's diary

    この記事はポエムアドベントカレンダー4日目の記事です。 www.adventar.org 大量の文字列データを扱うことの多くなった現代において、文字列処理ライブラリの高速化は重要である。 しかしながら、個人レベルで汎用的かつ高速な文字列処理ライブラリを作成することは難しい。 今回は汎用性を少し下げることにより圧倒的な高速化をした文字列処理ライブラリ「A」を制作した。 ソースコード gist.github.com ライブラリの仕様 文字列の制約 すべての文字がAで構成されていること 制約を満たす文字列の例 AAAAAA AAAAAAAAAA 制約を満たさない文字列の例 aaa ABCDE 制約を満たさない文字列を用いた場合、正しくない結果を得る可能性がある。 利用方法 ライブラリ中では専用の効率的なデータ構造により文字列を管理する。そのため、利用するにはstd::stringから変換処理を行

  • Visual C++の勉強部屋

    理工系、特に電気系、の学生と技術者を対象としたVisual C++の解説を行います。Visual C++を始めたいが、よく分からないという人は、これを参考にしてください。ただし、初めてプログラムを学ぶ全くの初心者向けではありません。 資料の一部のJava版が(株)翔泳社のウエブサイトCodeZineにありますので、こちらもご利用ください(Java版とある場所をクリックして下さい)。Visual C++ 6.0版(現在は全部削除)が最初に公開され、そのJava版がCodeZineに寄稿され、その後に現在のVisual C++ 2005 Express Edition版が作成されています。 Java版は、すべてアプレットになっていますので、ブラウザから試してみることができます(Javaランタイム必要)。 Visual C++ 2008 Express Editionが無償でダウンロード

  • UnityのNative Pluginを作ってC++のコードやライブラリを使う - yuki-koyama's blog

    概要 UnityといえばC#で開発するのが基ですが、Native Pluginという機能を使えば、他の言語 (C++など) で書かれたコードを呼び出すことができます。 今回はじめてNative Pluginを作ってみたので、調べたことなどをメモしておきたいと思います。 C++のライブラリ (Eigenとlibigl) を用いてUnity上でメッシュのガウス曲率を可視化した例 背景と動機 普段はC++でコンピュータグラフィクス関連の研究をしています(プロダクトの開発は行なっていません)。私がC++を使う主な理由は 過去に自分で書いたコードを使いまわしたいから 優秀な数学演算のライブラリや高度なジオメトリ処理のライブラリを使えるから 高速化がしやすいから などです。一方でUnityを使うこともあります。私がUnityを使う際の主な理由は 優秀なリアルタイムレンダリングが予め用意されているから

    UnityのNative Pluginを作ってC++のコードやライブラリを使う - yuki-koyama's blog
  • kati について - 兼雑記

    https://github.com/google/kati kati について、ドキュメント書こう…と思っていたのですがなかなか進まないので、とりあえず日語で書いてみることにしました。何書くかがあまり明確じゃないテーマなので、何書くか考えるのと英語考えるのを両方同時にやるのが少し大変で。 動機 kati は GNU make のクローンです。いずれ完全なコンパチになると嬉しいですが、なかなか難しいだろうと個人的には諦めています。用途に対して実用的ならば良いかなと。 動機としては、 Android platform のビルドシステムが、なかなかシュールな GNU make 黒魔術で構成されていて、 make が実際になんかしはじめるまでが遅かったので、そこを高速化したいというものでした。 ビルドシステムが遅いという時、まずだいたいヌルビルドとフルビルドの2点を考えます。ヌルビルドてのは生

    kati について - 兼雑記
  • introdunction to SIMD programming - primitive: blog

    Unite 2015 Tokyo の講演で詳細を話せなかったのが心残りだったので、大量のオブジェクトの更新処理についてこの場で書いてみます。 主に C++ で、簡単なパーティクルエンジンを作り、それを SIMD を用いて高速化する手順を解説します。 話を簡単にするため、以下の前提を設けます。 ・x86 環境のみ考慮 ・パーティクルは位置と速度のみを保持 ・パーティクル同士の相互衝突は総当たりで計算 総当たりなので超遅いですが、実装は容易で SIMD による恩恵を受けやすく、題材として手頃です。 この記事の中で引用されているソースの元は こちら、ビルド結果 (上のスクリーンショットのデモプログラム) は こちら になります。 相互衝突するパーティクルを実装する場合、お互いの距離を計算し、当たっていたらめり込み具合に応じて押し返す、というのがよくある実装だと思います。まずはそれをストレートに

    introdunction to SIMD programming - primitive: blog
    syan0
    syan0 2015/05/27
  • OpenVDB

    OpenVDB is an Academy Award-winning open-source C++ library comprising a novel hierarchical data structure and a suite of tools for the efficient storage and manipulation of sparse volumetric data discretized on three-dimensional grids. It was developed by DreamWorks Animation for use in volumetric applications typically encountered in feature film production and is now maintained by the Academy S

  • raspberrypi/mbed互換ライブラリの移植 - PukiWiki

    wait関数 † mbed互換ライブラリにはwait_usしかありませんが、mbedのwait_api.hの関数をwait_api.cに実装しました。残念ながら、wait_usはnanosleepシステム関数を使った場合、TextLCDが正常に動作しなかったためビジーウェイトで実装しました。 wait_msの実装は以下のような感じです。 void wait_ms(int ms) { struct timespec sleeper, dummy ; sleeper.tv_sec = (time_t)(ms / 1000) ; sleeper.tv_nsec = (long)(ms % 1000) * 1000000 ; nanosleep (&sleeper, &dummy) ; } ↑ DigitalOutクラス † DigitalOutには、WiringPiのライブラリを使用したので、と

  • ボツネタ集(だいたいランダムフォレスト) - じじいのプログラミング

    どうでもよいまえがき 今回の記事を最後に、機械学習関係の記事は、しばらくお休みにします! 我流すぎて、機械学習の知識が不足していて、記事を書くのに妙に時間がかかる。 最近、機械学習マッチで結果を出してないので、その中で記事を書いても、自分の中で説得力がいまいち。 というわけでしばらくの間は、機械学習について、以下のことに専念します。 とか論文とか読んでインプット 機械学習マッチで結果を出す ただ、記事を書こうと思ってたボツネタがあるので、勢いで書きました。雑です。メモ書き程度だと思ってもらえば。 それではスタートじゃ!!!! ボツネタ1 : ID分解 世の中のIDというものは、複数の情報を持っていることがあります。これを別の特徴量として追加します。数学も機械も関係ない、セコいテクニックですが、意外と実戦的かもしれません。 まず、データを眺めてください。 自分だったら、x0のidの赤で囲わ

    ボツネタ集(だいたいランダムフォレスト) - じじいのプログラミング
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    syan0
    syan0 2015/04/08
  • the enum hack c++:

    syan0
    syan0 2014/08/18
  • スクールガールストライカーズの 内製クライアントエンジン

    近年、ハイスペックなスマートフォン、高品質なネットワークが普及し、それによりモバイルゲームの制作手法やそれを取り巻く環境も変化してきました。スクウェア・エニックスでは、そのような環境の変化に対して、日々新たなチャレンジをし続けています。そして、このようなスピード感溢れる業界の流れには、会社の枠を超えた技術情報の共有、交流が欠かせないと感じております。 そこでこの夏、社内のエンジニア・テクニカルディレクターによる最新のモバイル開発の技術情報や社内モバイルエンジン、開発秘話によるセッションをメインに、スクウェア・エニックス モバイル オープンカンファレンスを開催する運びとなりました。また、セッションの後は登壇する弊社スタッフと直接ディスカッションやフリートークができる場を設けております。この機会にスクウェア・エニックスという会社についても、より詳しく知って頂ければ幸いです。 マネージャー・テク

  • ぷろぐらみんちっぷす < 3時のおやつか??

    Programming Tips 1024 プログラムしているときに思いついた小ネタを書きます。このコーナーへの投稿もお待ちしてます^^ 特にことわりが無い限り、C++/VC++/Win32です。情報提供者orネタ提供者がいる場合は、表題の右横に《 》で書いています。 '01/03/04 Tips 1. コメントアウトをコメントアウトする /* ~ */でコメント化したりしますよね。

    syan0
    syan0 2014/05/30