タグ

関連タグで絞り込む (160)

タグの絞り込みを解除

C++とc++に関するdelegateのブックマーク (166)

  • C++における構造体のコンストラクタはユーザー定義すべきではない(私見) - syghの新フラグメント置き場

    C++のクラス (class) と構造体 (struct) は、デフォルトのメンバーアクセスレベルが異なるだけなので、機能的な違いはありません*1。構造体でも、メンバー変数だけでなくメンバー関数を定義することができます。当然コンストラクタやデストラクタをユーザー定義することもできます。 コード例: #include <string> struct MyStruct { std::string name; // デフォルトコンストラクタで空文字列に必ず初期化されるので、コンストラクタのメンバー初期化子リストに記述する必要はない。 bool isEnabled; bool isChecked; float positionX; float positionY; int orderZ; // ゼロ相当の値で POD 型メンバー変数を初期化。 MyStruct() : isEnabled() ,

    C++における構造体のコンストラクタはユーザー定義すべきではない(私見) - syghの新フラグメント置き場
  • 累計3.3億DL突破「ibisPaint」GPUベース、C++ワンソースを選んだ理由は?成功を支えた技術選定の裏側

    株式会社アイビス 代表取締役社長 神谷 栄治 ソフトウェア技術者・経営者。2000年に「株式会社アイビス」を創業。フィーチャーフォン向けアプリの開発を経て、2011年にスマホ向けペイントアプリ「ibisPaint」をリリース。2023年現在も開発組織をリードしている 株式会社アイビスが提供する「ibisPaint(アイビスペイント)」は、高度な機能と使いやすさ、優れた安定性を兼ね備えたペイントアプリとして世界中のユーザーに愛されています。 リリースは2011年。当時からGPUベースで、開発言語にはC++を採用し、UIパーツやライブラリもすべて自社で制作しているという。ibisPaintの企画・設計・開発を一手に担った創業者の神谷栄治氏は「この技術選定が、現在のibisPaintの発展につながった」と語ります。 2011年当時のスマホアプリ開発において異例の技術選定の意図は? 全世界での累計

    累計3.3億DL突破「ibisPaint」GPUベース、C++ワンソースを選んだ理由は?成功を支えた技術選定の裏側
  • Windows 7 Native Development with Visual Studio 2010 -- Visual Studio Magazine

  • 有限要素法(FEM)の実装におけるC++行列計算ライブラリEigenの使い方 | 川上幸亮

    C++行列計算ライブラリEigenEigenの使い方を調べている中で、日語で大事な情報がないことが多かったので、特に疎行列に関して有限要素法(FEM)の実装で必要となる使い方と注意点をまとめた。 EigenとはC++で記述された線形代数ソルバーのオープンソースライブラリ有名なGoogleのTensorFlowを含め、科学・ロボット・CG分野などで幅広く活用されているテンプレートライブラリ、つまりヘッダファイルだけからなるので、 Eigen HomePageからダウンロードしてきたヘッダファイルをソースからインクルードするだけで利用可能.// includeの例 #include <Eigen/Core> #include <Eigen/Sparse> 参考となる資料公式チュートリアルと 公式クイックリファレンスは英語だが、一番情報が正確かつ網羅的なので困ったらこれらで調べる日語でもQi

    有限要素法(FEM)の実装におけるC++行列計算ライブラリEigenの使い方 | 川上幸亮
  • イテレータの解説をするなんて今更佳代 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 初心者C++Advent Calendar 2016 この記事は初心者C++Advent Calendar 2016 15日目の記事です << 14日目 | ポインタと仲良くなる話 【初心者C++er Advent Calendar 2016 - 14日目】 - をるふちゃんのブログ](http://wolf-cpp.hateblo.jp/entry/2016/12/20/063530) || [16日目 | C++の乱数ライブラリが使いにくい話 >> 遅刻してすみません。 DxLib解剖学LoadSoundMemとLoadBGM -

    イテレータの解説をするなんて今更佳代 - Qiita
  • C++1z 古くなった機能を非推奨化 - Faith and Brave - C++で遊ぼう

    C++1zから、標準ライブラリのいくつかの機能が非推奨となります。非推奨となった機能は将来のバージョンで削除される可能性がありますのでご注意ください。 std::iteratorクラス 自作イテレータを作るときに基クラスとして使用するstd::iteratorクラスですが、これを使ってもイテレータを定義するのはあまり簡単になりませんでした。 このクラスを使用することによって問題がより複雑になってしまうケースもありましたので、非推奨となります。 Boost.Iteratorのようなイテレータを簡単に定義するための新たな仕組みは提供されませんので、標準ライブラリの範囲では、イテレータは最初から最後まで自分で定義することになります。 std::allocatorクラスのいくつかのメンバと、std::allocator<void> C++11からアロケータの中間インタフェースとデフォルト実装を提

    C++1z 古くなった機能を非推奨化 - Faith and Brave - C++で遊ぼう
  • あまり知られていない〈algorithm〉 - HackMD

    # あまり知られていない〈algorithm〉 この記事は [Competitive Programming (1) Advent Calendar 2020](https://adventar.

    あまり知られていない〈algorithm〉 - HackMD
  • 競プロのための標準 C++

    ◆ 内容 競技プログラミングで知っておきたい C++ 標準機能を解説します。競技プログラミング独特のハックやスタイル(<bits/stdc++.h>, 大きな配列、using namespace std 等)を避け、一般の C++ ソフトウェア開発でも通用するコードを心がけています。 ◆ ライセンス 記事中のソースコードは CC0 1.0(パブリックドメイン相当)です。自由に利用・改変・再配布できます。 ◆ C++ バージョン C++20 / C++23(AtCoder と同じ gcc 12.2) ◆ 対象読者 ・競技プログラミングの上達のために C++ の機能を深く学びたい方 ・コンテスト中に参照できる C++ ドキュメントを探している方 APG4b や市販の入門書で C++ を学んだ人にとって有益な内容から書き進めています。将来はより幅広い内容を扱います。 ◆ 書へのご意見・ご提案

    競プロのための標準 C++
  • トップページ | Programming Place Plus 新C++編

    トップページ ここは、Programming Place Plus の 新C++編のトップページです。C++ でのプログラミングを、入門段階から順序立てて解説していきます。 新C++編を読むにあたって、古いバージョンの C++ や、C言語の知識は不要です。 プログラミング自体の経験がない(少ない)方は、導入 から始めてください。ある程度わかっている方は、編 から始めて構いません。いずれも、目次に並べている順番で読み進めることを想定しています。 導入 編 APPENDIX 記号の一覧 演算子の一覧 キーワードの一覧表 型の分類表 事前定義マクロの一覧 属性の一覧

    トップページ | Programming Place Plus 新C++編
    delegate
    delegate 2023/04/08
  • C++ スキルアップにおすすめの書籍

    C++ スキルアップにおすすめの書籍 はじめに C++ は、初学者と中級者のギャップが、とても大きい言語だと感じます。覚えることが多い(例えば、マニュピレーターって何?)割に、より平易なC言語との後方互換性が提供されているため、気をつけないとかなり経験年数を積んだ方でも、いつまでも「C++らしさ」が身につかず、 “better C” として記述している事例を散見します。 以下ではそんな轍を踏まないための、ステップアップ用の書籍を紹介いたします。 著者が最も技術書を読んでいたのが 2010 年頃のため、内容が古めです disclaimer ここでいう「中級者」は @yumetodo さんの定義 の入門者〜初心者程度です。 入門書 正直に言って入門書は、どれを選んでも問題ないと思います。デザインが読みやすい、表紙が気に入った、などの好みで、好きなを選べばよいです。 あえて挙げるなら、私の身近

    C++ スキルアップにおすすめの書籍
  • C++でクロージャや関数を返す関数を勉強していたときの痕跡

  • C++のラムダ式の説明 - Qiita

    動画 一応、動画でも追加説明をしています。もしよろしければ。 https://www.youtube.com/watch?v=E5lO5aQFTA0 https://www.youtube.com/watch?v=yY4Z9Ishs-8 Mitivation C++の案件を請け、数人のメンバーで開発をしている メンバーからC++構文で質問を受けるので その部分を改めて解説します 今回説明すること ラムダ概要 関数オブジェクト キャプチャ C言語の関数ポインタとの互換性 寿命切れ変数の参照キャプチャ mutable クロージャ 初期化lambdaキャプチャー ジェネリックラムダ 今回説明しないこと ファーストクラスオブジェクト レキシカルスコープ テンプレート 右辺値参照 moveセマンティクス 完全転送 *thisキャプチャ std::function スマートポインタ constexpr

    C++のラムダ式の説明 - Qiita
  • VC++のUnicodeコンソールアプリケーションで作るときの初期処理 - mogmo .NET

    mainではなくwmainを使う コンソールに日語出力できるようにする wprintfを使用する std::wcoutを使う 引数を受けとる キーを入力するまでポーズする 文字列を扱うときはマクロを使う データ型 文字列 CString 次回 mainではなくwmainを使う ユニコードアプリの場合,wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )を使用します。 デフォルトのコードではmainとなっているので,関数名と引数を適宜変更しましょう。 コマンドライン引数も,ユニコードの場合はワイド文字列データ型のwchar_tにしましょう。 Debug版のアプリケーションは起動するが,リリース版で起動せず終了してしまう現象が発生。 コンソールに日語出力できるようにする wprintfやstd::wcoutを使ってコンソールに文字列を出

    VC++のUnicodeコンソールアプリケーションで作るときの初期処理 - mogmo .NET
  • かつての当たり前が通用しない? Modern C++ではやらないこと

    21世紀に入ってまったく別物と言えるプログラミング言語に進化したC++連載では、Modern C++と称されるC++について、Modern C++らしい言語仕様をピックアップし紹介していきます。第1回は、かつてのC++の当たり前が今では通用しないことを紹介します。たとえばインスタンスの生成にnewを、破棄にdeleteをというのが常道でしたが、もはやそれらは非推奨なのです。導入として、このようなかつては常識だったことが非推奨になっているという状況を、いくつかのトピックスを通じてお話しします。 はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょ

    かつての当たり前が通用しない? Modern C++ではやらないこと
    delegate
    delegate 2023/02/27
  • 【C++】POSTでデータを送信するには?WinINetを使ってPOSTする方法

    C++(Win32)でPOSTしたいときの方法を紹介します。Win32ではWinINetを使用すると、比較的かんたんにPOSTすることができます。当記事では、WinINetを使用したPOSTの方法をサンプルコードとあわせて紹介していきます。 サンプルコード さっそくサンプルコードを公開します。 URL「http://192.168.1.4/test/test.php」に、次のデータをPOSTする例です。 キー「a」値「1234」キー「b」値「5678」 // ConsoleApplication1.cpp : このファイルには 'main' 関数が含まれています。プログラム実行の開始と終了がそこで行われます。 // #include <iostream>//std::coutなど使うのに必要 #include <tchar.h>//_Tを使うのに必要 #include <windows.h

    【C++】POSTでデータを送信するには?WinINetを使ってPOSTする方法
  • 【C++】C++ REST SDKを使用したhttp通信してみた

    こんにちは!情熱開発部の金澤です! 年も明けて寒さが厳しくなってきましたが、皆様いかがお過ごしでしょうか。 私は冬だからか今回初めての技術ブログだからなのか分かりませんが震えています。 というわけで今回は、『C++ REST SDKを使用したhttp通信』についてご紹介していきたいと思います! C++ REST SDKとは C++ REST SDKとは「ネイティブ コードをクラウド環境に移行できるようにするためにマイクロソフトが踏み出した最初の 1 歩」とMicrosoftが提供しているオープンソースのライブラリです。 JSON対応や非同期通信はもちろん、Microsoftが提供していることもあり何よりインストールが非常に簡単で、VisualStudioからであればNuGetにて直ぐにインストールすることが出来ます。 また、C++との一貫性が高いのも魅力的ですね。 それでは早速cppres

    【C++】C++ REST SDKを使用したhttp通信してみた
  • 高速軽量XMLパーサ:RapidXMLを触ってみた

    RapidXMLのページから拾ってきたversion 1.13のZIPファイルを解いて出てきたのはヘッダが4HTMLドキュメントとライセンス条項……これだけ? なんともそっけない構成ですがヘッダを#includeするだけで使えるみたい、軽量ライブラリの鑑です。ヘッダのタイムスタンプが2009年5月で、きょうびのコンパイラが素直にってくれるか少々不安でしたが、お試しコードをVisual C++ 2017が、するりと呑んでくれたので一安心。 parseのキホン RapidXMLでXMLをパースするのは、とっても簡単。xml_documentを用意し、メンバ関数:parse()にXML文字列をわすだけ。 #include <rapidxml.hpp> #include <iostream> #include <string> using namespace std; // 以降、Rapi

    高速軽量XMLパーサ:RapidXMLを触ってみた
  • 実線C++入門講座 第33回目 C++の型変換でバグを未然に防ごう | Theolizer®

    こんにちは。田原です。 C言語の明示的な型変換は1つしかありません。問答無用に変換するので使い方を誤りやすくバグの元になり勝ちです。それに比べC++の明示的な型変換は危険なものが別れているためそれを使わないよう避けておけば比較的安全です。 また、その一つのdynamic_castは遅いと聞くので測ってみたところ、面白い結果が出ましたので報告します。 1.まずは暗黙の型変換 C++は明示的に型を指定して変数や定数の型を変換する場合と、暗黙的(自動的)に変換される場合の2つがあります。まずは暗黙的な変換について簡単に説明します。(詳しい説明は複雑ですので、入門講座では扱いません。) 1-1. いつ暗黙の型変換が発生するのか? 関数に渡される時と演算される時に暗黙の型変換(自動変換)が発生します。 例えば、short x=10; foo(x);のように関数fooへshort型変数xが渡される時や

    実線C++入門講座 第33回目 C++の型変換でバグを未然に防ごう | Theolizer®
  • c++のexplicit指定子の使い方まとめ

    c++のexplicit指定子(explicit specifier)の使い方をググってもいい感じの情報にはたどり着けなかったのでメモ。 c++03まで #クラスのコンストラクタの宣言で explicit をつけると、次の2つの制限が適用される。 コピー初期化ができない暗黙の型変換ができないそれぞれコードで示すと以下のようになる。 class Test { public: explicit Test(int) {} }; void hoge(Test test) {} ina main() { // <コピー初期化> Test test1(0); // OK Test test2 = 0; // NG: intでコピー初期化はできない Test test3 = Test(0); // OK // </コピー初期化> // <暗黙の型変換> hoge(Test(0)); // OK hoge

    c++のexplicit指定子の使い方まとめ
  • C++で統計解析 - sfchaos's blog

    先月開催されたJapan.R 2013の懇親会で,「C++で統計解析を行うための良いライブラリは?」という話がありました. 統計解析と一口に言っても結構広いので,ここでは以下の4つのカテゴリ 記述統計量(最大値,最小値,平均値,分散等) 統計的検定(t検定,χ2乗検定等) 多変量解析(線形回帰,一般化線形モデル,判別分析,主成分分析,因子分析等) 機械学習(サポートベクタマシン,ランダムフォレスト等) に分けてライブラリがサポートする機能を整理してみると,下表のようになります*1.ここでは,Scytheなどの数値計算用のライブラリ,Shogun, Vowpal Wabbitなどの機械学習に特化したライブラリは対象外としています.他にもこんなライブラリがあるよ!という方は是非教えてください. ライブラリ 記述統計量 統計的検定 多変量解析 機械学習 Boost.Accumulators ○

    C++で統計解析 - sfchaos's blog