検索結果 108 件

by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: STL文字列の変換について
返信数: 5
閲覧数: 496

Re: STL文字列の変換について

as_string は、メソッドで、戻り値が wstring 型 wstring 型は、c_str メソッドを持ちます。 ※ wstring 型を扱う場合は、ロケールの設定が必要な場合があるので注意が必要です。   適宜調べてください。 #include <iostream> #include <string> struct Foo { // string 型 として取得 std::wstring as_string() const { return L"test"; } }; int main() { Foo hoge; std::wcout << hoge.as_string().c_st...
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: STL文字列の変換について
返信数: 5
閲覧数: 496

Re: STL文字列の変換について

手元で確認していませんが、
その string 型には、c_str() メソッドはありませんか?
ワイド文字でない限りは、対応できると思います。

コード:

printfDx("%s", json["title"].as_string().c_str());  // *エラー箇所。STL文字列を変換する必要がある?
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 名前空間について
返信数: 11
閲覧数: 1200

Re: 名前空間について

かずま さんが書きました: 同様に、セミコロンのつかない [](){} がラムダ式です。
次に、最小のラムダ式は []{} です。
ご指摘ありがとうございます。
確かに、最小のラムダ式は、

コード:

[]{}
です。

混乱させてしまって申し訳ありません。
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 名前空間について
返信数: 11
閲覧数: 1200

Re: 名前空間について

☆1つ目の質問 名前空間::型 関数 のような並びになっているのでしょうか? かなり雑に説明すると、task<void> を型だと考えれば良いです。 簡略化すると下記のような構成になっています。 namespace pplx { template <class Ty> class task {/* 略 */}; template<> class task<void> {/* 略 */}; } pplx::task<void> Get() { pplx::task<void> inst; return inst; } ☆2つ目の質問 関数([])というように、引数”[]”が渡されているように見...
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 64bit環境で32bitのプログラムが動くワケ
返信数: 2
閲覧数: 409

Re: 64bit環境で32bitのプログラムが動くワケ

少なくとも、
Windows環境では、エミュレートされていると考えて良いと思います。

仕組みに関しては、詳しくないのでWiki参照でお願いします。
WOW64 - Wikipedia
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: dxライブラリ 時間差表示について
返信数: 4
閲覧数: 568

Re: dxライブラリ 時間差表示について

オフトピック
質問内容と関係ないのでオフトピックですが、
管理人さんのサンプルコードでemplace_backメソッドの使い方が良くないように思いました。
動作に関係ないですが、気になったので・・・
攻撃の意図等は、ないです。お気を悪くさせてしまったら、本当にすみません。

折角、コンストラクタ引数でintが渡るようになっているので、
一時変数は、不要だと思います。

コード:

list.emplace_back(TimeStump(index++));

コード:

list.emplace_back(index++);
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: WSH JScript から C#
返信数: 1
閲覧数: 479

Re: WSH JScript から C#

とりあえず、解決つけます。 全く、レスが付かないこともあるんですね。orz コンソールのメッセージをサブクラス化する等、色々試しましたが、 うまく動作しなかったので、非表示で妥協しました。 @if(0)==(0) echo off title %~n0 cscript.exe //nologo //E:JScript "%~f0" %* if not %errorlevel% == 0 echo;&pause goto:EOF @end function GetCSharpSrc() { return (function () {/* using System; using System.Di...
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: WSH JScript から C#
返信数: 1
閲覧数: 479

WSH JScript から C#

お世話になります。 WSH JScript から C# を実行するために バッチを作成しています。 (↑ここは、前提条件なので崩せません。) 以下のバッチを実行した際に表示される、 コマンドプロンプトのウィンドウが閉じられないようにする 良い方法は無いでしょうか? アイデア・実装 などアドバイスお願いします。 @if(0)==(0) echo off title %~n0 cscript.exe //nologo //E:JScript "%~f0" %* if not %errorlevel% == 0 echo;&pause goto:EOF @end function GetCSharp...
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 「龍神録2プログラミングの館」を開設しました [雑談]
返信数: 16
閲覧数: 5055

Re: 「龍神録2プログラミングの館」を開設しました [雑談]

Dixq (管理人)さま

管理人さんの考えとしては、
  • (C++で一般的でないものの)規約違反をしているわけでないし、
    MSDNの命名規則を使用しても得られる恩恵は少ない
  • 気になるならリファクタできる
ということと把握しました。
お手数おかけしました。
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 「龍神録2プログラミングの館」を開設しました [雑談]
返信数: 16
閲覧数: 5055

Re: 「龍神録2プログラミングの館」を開設しました [雑談]

とは言え、C++ではメンバ変数にアンダースコアを付けることが一般的ではないこと承知しています。 ただ私はJAVAを書いている時間の方が圧倒的に長いのでJAVAの慣習に慣れてしまい、私がかきやすいのでこの表記を使っています。 言語仕様上間違いではないので、JAVAの慣習をそのまま流用していますが、気持ち悪ければアンダースコアをmに書き換えてもらっても構いません。 ご回答ありがとうございます。 経緯について、承知いたしました。 命名規則自体には違和感はないのですが、C++でこの規則を使用している点が気になって質問しました。 (説明足らずで、うまく伝わらなかったので、) 一応、あとで読まれる方のた...
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 「龍神録2プログラミングの館」を開設しました [雑談]
返信数: 16
閲覧数: 5055

Re: 「龍神録2プログラミングの館」を開設しました [雑談]

毎度、お世話になっております 「龍神録2プログラミングの館」開設おめでとうございます 公開しているコードに突っ込み等あれば是非お願いいたします。 早速ですが、「龍神録2プログラミングの館」の公開コードの命名規則について 素人目で申し訳ないのですが、質問です。 下記等のように、公開されているコードの変数名が、アンダースコアから始まっていることについての疑問です。 std::map<std::string, int> _map; 自分の認識として、アンダースコアから始まる変数名は、C++において推奨されない認識ですが、 こういった命名規則になっている経緯などありますでしょうか。 予約名 コードの規...
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい
返信数: 11
閲覧数: 3448

Re: VC++で関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい

「関数呼び出し時に末尾の括弧がない場合にコンパイルエラーにしたい」 ではなくて、 「想定外の呼び出しをエラーにする」に妥協するならば、 エラーを出すことは可能ですが、どうでしょう? #include <iostream> // 標準IO #include <utility> // std::forward class TestClass final { private: static int member; public: static int getMember() { return member; } static int getValue(int v) { return v; } sta...
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: キャラを動かすってだけのクラス設計
返信数: 16
閲覧数: 1575

Re: キャラを動かすってだけのクラス設計

オフトピック
内容と逸れるのでオフトピックですが、
古くからあるゲーム設計を調べると、設計の糸口が掴めるかもしれません。
メッセージベースによるゲーム駆動
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++ もっとシンプルに使えるシングルトンクラス
返信数: 5
閲覧数: 695

Re: C++ もっとシンプルに使えるシングルトンクラス

結城紬さん、回答ありがとうございます!

実装例まで、あげていただき非常にわかりやすかったです。
使用側でシングルトンの記述を最小限に抑えたかったので、
ご提示いただいた方法で、十分でした。

おかげさまで、かなりシンプルに書けるようになりました。
ありがとうございました。
by inemaru
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++ もっとシンプルに使えるシングルトンクラス
返信数: 5
閲覧数: 695

Re: C++ もっとシンプルに使えるシングルトンクラス

継承を使用しているのは、
シングルトンの機能を再利用するためです。

プロジェクト内で、複数のクラスに対して
個別にシングルトンを実装していく手間を省きたい意図です。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++ もっとシンプルに使えるシングルトンクラス
返信数: 5
閲覧数: 695

C++ もっとシンプルに使えるシングルトンクラス

お世話になります。 デザインパターンのシングルトンをC++で実装/使用する際 friendが出てくるのが少し煩わしいと感じて、質問することにしました。 シングルトンパターンの実装として、下記サイトのコードを使用しています。 これでほぼ完璧! C++シングルトン基底クラスの決定版! サイトの方法では、シングルトンクラスを継承してクラスを定義する際 定義するクラス内でfriendを指定する必要がありますが、 friendを書かずに実現する方法は、ないでしょうか? 書き忘れた場合でも、コンパイル時に気が付けますが 書かなくても実現できるのであれば、書かない方法を使いたいです。 宜しくお願い致します。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: よくわかりません
返信数: 13
閲覧数: 1524

Re: よくわかりません

void型の関数を作る条件の問題なのだとしたら、引数はポインタになりそうですね。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: utf16beの読み込み方法
返信数: 4
閲覧数: 702

Re: utf16beの読み込み方法

標準ライブラリのcodecvt_utf16を使用する方法がありますが、どうですか? 下記の実装は、BOM付utf16BEを表示するサンプルです。 環境:VS2013/Unicodeプロジェクト #include <windows.h> #include <locale> #include <fstream> #include <string> #include <codecvt> using namespace std; std::wstring GetString_UTF16BE(const char* filePath) { wifstream ifs(filePath); if (!if...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: 共用体の使い道【雑談】
返信数: 2
閲覧数: 601

Re: 共用体の使い道【雑談】

ありきたりな用途であれば、 同じ型が連続している構造体を、配列でアクセスしたり とか? C++だとテンプレートも使えるので、下記のようにできる。 #include <iostream> template<class Type> union Vector3 { struct { Type x; Type y; Type z; }; Type data[3]; }; int main() { using namespace std; Vector3<int> vec = {1, 2, 3}; for (auto v : vec.data){ cout << v << endl; } cout <<...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: 異なる型に変数を変換する
返信数: 8
閲覧数: 1137

Re: 異なる型に変数を変換する

intで取得された値をfloatに変換したいとなると、キャストは必要です。 でも共用体を使ったらどうやってキャストするの? 共用体を使ってキャストするとは、書いていませんよ。 言葉通りの意味です。 float 変数から読み出す float 値に意味がない時点でコードの価値を見出せないが... 価値や意味なんて、質問者さんにしかわかりませんが、 floatをintとして扱った場合の値がわかりますね。 とはいえ、質問内容的に、それはないだろ って話なのは理解しています。 質問の受け取り方は、人それぞれということで。 駄文回答をしてしまい、質問者さん申し訳ない。 以降の回答は控えます。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: 異なる型に変数を変換する
返信数: 8
閲覧数: 1137

Re: 異なる型に変数を変換する

キャストを呼ばない という文言が誤解を招きますね。 意味的には、アドレスのキャストを指していますが、zeek さんの指摘は理にかなっています。 このようにすると呼び出し側から*float -> *int の変換は出来ない、と怒られてしまいます。 関数hogehogeの変数f,g,hを*intに変換する方法は無いのでしょうか? 先ほどの回答は、 float*をint*に変換できないということを観点に回答しました。 論点がずれていたのなら申し訳ない。 intで取得された値をfloatに変換したいとなると、キャストは必要です。 sizeof(float) と sizeof(int) が同じ保証はない...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: 異なる型に変数を変換する
返信数: 8
閲覧数: 1137

Re: 異なる型に変数を変換する

スマートかと言われると微妙ですが キャストを呼ばないで済む方法として、共用体を使用するのはどうでしょうか? void hoge(int *i, int *ii, int *iii) { *i = 0; *ii = 0; *iii = 0; } void hogehoge() { // float f, g, h; // hoge(&f, &g, &h); //ココ union{ struct{ float f, g, h; }; struct{ int seisu1, seisu2, seisu3; }; }data; hoge(&data.seisu1, &data.seisu2, &dat...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]vector<unique_ptr<T>>の初期化
返信数: 5
閲覧数: 1556

Re: [C++]vector<unique_ptr<T>>の初期化

emplace_backについてなのですが、 私の認識ではコピーしないpush_backのイメージでした。 unique_ptrはコピーができない(moveされる)のでpush_backでもいいのかな、と思っていたのですが やはりemplace_backのほうが効率がいいのでしょうか? (名前が複雑という理由だけで使わず嫌いを起こしています^^;) emplace_backは直にメモリに格納するので、 一時変数のmoveが走らない分、効率が良いと考えています。 関数の実装については、 zeek さん提示の方法で実装した方がスマートに書けますね。 #include <memory> #incl...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]vector<unique_ptr<T>>の初期化
返信数: 5
閲覧数: 1556

Re: [C++]vector<unique_ptr<T>>の初期化

ここで質問なのですが、vectorの初期化時にunique_ptrを格納することは可能でしょうか? また、もし可能であるならそのやり方を教えてもらいたいです。 自前で、格納する機能を作る必要があると思います。 例えば、 初期化リストを受け取って、vector<unique_ptr<Base>> を返却する関数を作れば可能。 手元で確認していませんが、関数のイメージとしては、 初期化リスト受け取り→reserveで要素数指定→emplace_backで格納 が良いと思います。 現在はpush_backを使って一つづつ格納していますが、醜いような気がします。 (あと、新しい要素を追加するときにp...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: 基底クラスの必要性について
返信数: 6
閲覧数: 889

Re: 基底クラスの必要性について

Taskクラスを継承しているクラスは、Taskクラスとして扱えるため
配列にまとめるなどして処理しやすい利点があったり、
Taskクラスに定義されているメソッドが存在することが保証できたりする。

とかでしょうか。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: androidでのiniファイルの読み込み方
返信数: 7
閲覧数: 1271

Re: androidでのiniファイルの読み込み方

オフトピック
Math さんが書きました:"すべての処理を C++ で実行できれば良いのですが、Android の基本言語が Java である関係で、
Java を使用しないと使うことができない機能が沢山あります。"
VS2015は1つのソリュウションにC#,VB,C++,C... プロジェクトは当たり前ですが..
C++からJavaのAPIを呼び出せるのは、リンク先を見てわかりますが、
ini操作用のAPIが存在するわけじゃないので、わざわざJavaじゃなくて良いのでは? という意図の質問です。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: androidでのiniファイルの読み込み方
返信数: 7
閲覧数: 1271

Re: androidでのiniファイルの読み込み方

楽するなら適当なC++のライブラリを使用したら良さそう

android 用のプロジェクトで使用できるか確認してませんが、
Boost Property Tree Library
は、どうでしょう。

使えそうなライブラリが無い場合でも、
複雑なものでないなら、自前で実装しても良いかもしれません。
オフトピック
Math さんが書きました: INIファイルには”Java"を使う!
http://dxlib.o.oo7.jp/lecture/Android/Android_Java.html
素朴な疑問、C++プロジェクトなのに何故Java?
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のRxにおけるダブルクリックの実装
返信数: 5
閲覧数: 1802

Re: C++のRxにおけるダブルクリックの実装

進展あったので 追記/解決 します。 非常にコンパクトにまとまりました。 Rxの恩恵が大きいと感じます。 最終的な実装は下記の通りです。 auto doubleClickStream = clickStream .time_interval() // 前回からの経過時間を送信 .filter([](auto v) { // 500ms より短いイベントのみ処理 using namespace std::chrono; return (duration_cast<milliseconds>(v).count() < 500); }); auto send_mousePos = doubleCli...
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: キャストに関してのまとめ
返信数: 7
閲覧数: 989

Re: キャストに関してのまとめ

C++のキャストについては、ここ読むと良いと思います。
http://ezoeryou.github.io/cpp-book/C++1 ... xpr.typeid
http://ezoeryou.github.io/cpp-book/C++1 ... #expr.cast
オフトピック
Nior さんが書きました:C言語のキャストに関して、以下のようにまとめました。
質問内容的に、大きな影響はなさそうだけど、
C言語とC++は区別されるべき、
Nior さんの提示しているページはC++についてかかれている。
by inemaru
2年前
フォーラム: C言語何でも質問掲示板
トピック: C++のRxにおけるダブルクリックの実装
返信数: 5
閲覧数: 1802

Re: C++のRxにおけるダブルクリックの実装

Yuo さん 回答ありがとうございます" 前回の時間との差がある程度より小さければダブルクリックになるのですから,単純に前回との差を調べればよいことになります。 面白そうなので,コードを書いてみました。 分かりやすいコードを用意していただき助かりました。 提示して頂いたコードを使用する事で、ダブルクリックが実現できました。 Reactive Extensions 的なコードを意識しすぎて難しく考えすぎていたようです。 「Rx ダブルクリック」でググってRxJava on Androidのコードをもとに考えついたのは, buffer_with_time_or_count を使う解でした。 ただ、...

詳細検索ページへ移動する