2016-01-01から1年間の記事一覧
github, jenkins, aws git submodule Reference Git submodule の基礎 git submoduleを今風な感じで削除する jenkins plugin Reference How to install a plugin in Jenkins manually? MSBuild Plugin After installation, there is setting form in "Global…
githubからコードを入手 https://github.com/Excel-DNAExcelDna\Sourceにあるソリューションを開いてでビルドする。 ExcelDna\Build\build.batを実行。新しいC#プロジェクトを作成。 ExcelDna\DistributionにあるExcelDna.Integrationを参照に追加。 namespa…
したいこと。 int main() { auto x = std::make_tuple(1, 2.0, "three"); auto f = [](auto a, auto b, auto c) { std::cout << typeid(a).name() << std::endl; std::cout << typeid(b).name() << std::endl; std::cout << typeid(c).name() << std::endl; …
最近、C#を勉強していてlinqのクエリ(?)がすごく便利だと感じたので、C++でそれっぽいのを作ろう。 進捗は select select_with_index select_unzip where where_with_index skip take zip を作成。使い方は下記の通り。 コードは GitHub - nishiba/query:…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Office.Interop; using Excel = Microsoft.Office.Interop.Excel; using System.IO; using System.Runtime.Interop…
インスタンスの生成方法について再考。 したいこと Dataの商品IDに応じて、違うルールでShelfを作りたい。 新しい商品を追加も容易にしたい。追加や変更するクラス、箇所を極力小さくしたい。 int main() { ProductId("c1").procedure<Screw1Builder, BoardBuilder, ShelfBuilder>(); ProductId("c2").pr</screw1builder,>…
Decolatorパターンの場合、内部で持っているコンポーネントの振る舞いが分かりにくい。Mix-Inの場合、プロパティとなるClassがtemplate classとなってしまって、複雑になる。そこで、状況によってはあ下記のような継承もありかな。 RuleBaseはルール f : dou…
入力(数>n)からn個をランダムに選択する方法。1. 最初のn個をI[0]...I[n-1]にコピーする。t = n - 1。 2. 入力値がなかったら、5へ。 3. ++tとし、[0, t]の一様乱数uを生成する。 u >= nならば、2へ。 4. I[u] = I[t]とし、2へ。 5. Iをソートして終了。 #in…
N個の中からランダムにn個のを選択するためのアルゴリズム 1. t = 0, m = 0とする。 2. [0, 1]の一様乱数uを生成する。 3. もし、 (N - t) * u >= n - m ならば5へ。それ以外ないなら4へ。 4. tを採用し、++t, ++mとする。もしm 5. ++tとし、2へ。 template <typename U></typename>…
まさかこんなことができるとは思っていなかった。 やりたいこと C++で定義されたコードをC#で継承してい使用する。 参考 http://www.swig.org/Doc1.3/CSharp.html cpp class Base { public: virtual ~Base() {} virtual void tell() const = 0; }; class Cal…
金利系 Interest Rate Instruments and Market Conventions Guide
Visual studio 2015 Swig Github TortoiseGit Cygwin
したいこと clone関数を継承によって実装したい。 下記のような感じにしたい。 A, Bはクラスはclone関数をオーバーライドしていないけど、Cloneableを継承することで、cloneができるようになる。 struct B : public Cloneable とすることで、BはAを継承した…
swigを使用。 SwigSample.i %include std_vector.i %template(VectorDouble) std::vector<double>; のようにすればよい。C#でVectorDoubleという名前でstd::vectorが使用できるようになる。あとはいつも通り swig -csharp -c++ SwigSample.i</double>
参考 Excel から使うマネージDLL を作る。 | supermab's blog 課題 関数にsummaryを書き、xmlを生成したが、Excel/VBAでは表示されない。 下記のコードの意味がよく分からない。 [ComRegisterFunctionAttribute] private static void RegisterFunction(Type …
したいこと {"person" : {"name" : "testname", "age" : 29}} のようなデータから class Person { std::string _name; int _age; }; class Data { Person _person; }; のDataクラスに変換する。 ソースコード https://github.com/nishiba/object_creator int…
JSONの原典 JSON JSONの構文 データは "name" : value データはカンマ区切り 波括弧{}はオブジェクト 角括弧[]は配列を表す JSONのvalueの型 数値 文字列 ブール 配列 オブジェクト null JSON構文チェック 下記サイトで構文を確認できる。 https://syncer.jp…
#define GENERATE_ENUM_ITERATOR(T) \ inline T operator++(T& x) { return x = (T)(std::underlying_type<T>::type(x) + 1); } \ inline T operator*(T c) { return c; } \ inline T begin(T r) { return static_cast<T>(0); } \ inline T end(T r) { T l = T::LA</t></t>…
コードをgithubにアップ。 nishiba/boost_spirit_sample 実行し、”1 + max(2, 3) * 4"と入力すると、"13"と返ってくる。 ------------------------------------------------ # 1 + max(2, 3) * 4OK13 ------------------------------------------------