metaprogramming

    0

    1答えて

    与えられた型の挿入演算子があることを検出したいと思います。通常は、適切な署名で過負荷関数が存在することを確認します。私はクラスAを持っているとします。 template<typename T> struct insert_operator_type { using type = typename std::ostream&(*)(std::ostream&, const T&);

    1

    1答えて

    コンパイル時に、型のフィールドタイプに反映:「シンプル」オブジェクト・タイプなどを与えられた、 type TMyStruct = object foo: int32 bar: int16 私の目標は、マクロ(またはそれ以外)を構築することであるが上の例では、sizeofに基づいて、型の各フィールドのサイズの合計を計算できます。この場合int32は、サイズ4を有するとint1

    -3

    1答えて

    で定義されていないメソッドを呼び出すメソッドは、特別なクラスとして定義された外部APIを使用しています。ほとんどの標準メソッドはxmlの構築に使用するために未定義です。ここで、#method_missingは、オブジェクト上で呼び出された欠落したメソッド名に基づいて要素を生成します。 は、基本的にはクラス本体での効果に何かがある: undef_method :send は今、私はプログラム的に

    2

    2答えて

    class Foo belongs_to :bar どのようなクラスがbelongs_toの関係であるかを知る良い方法はありますか? この場合、Barです。私はこのための組み込みメソッドがあります確信しているが、回避策として、あなたがFooの属性を見ることができ、その規則を悪用

    4

    1答えて

    テンプレートのメタプログラミングを掘り起こすと、C++の列挙型の範囲で奇妙な動作が検出されました。 警告:式で整数オーバーフローが発生する。実際にはenumの範囲外の値は望ましくないようだ。 #include <iostream> #include <limits> template <int i> class pow { public: enum { result = 2*

    1

    1答えて

    テンプレートを特殊化する(パラメータはありません)関数を作成しようとしていますが、関数の特殊化によって何か他のものが印刷される最後のものまでメッセージが出力されます。やめる。 私はここで、説明本当に悪いんだと私は私が何をしようとしているのコードを投稿する:最初の注意点としては template <typename T> constexpr void UpdateStuff() { s

    0

    1答えて

    私はこの主題に触れることに関するいくつかの質問があることを認識していますが、 すべての引数がポッドの場合にのみ、f関数を有効にしたいと思います。 私はこれを行うには、次のコードを持っている: #include <type_traits> template <typename... Conds> struct and_ : std::true_type { }; template <t

    3

    1答えて

    メタプログラミングを使用して方程式のシステムの残差を計算する関数を作成しようとしています。 これは私がこれまでに(おもちゃの一例)を試してみましたものです: function syst!(x::Vector, ou::Vector) for i in 1:length(x) eval(parse("ou[$i] = x[$i]^2 + x[$i]")) end

    2

    3答えて

    で関数型を引き離す離れthis questionピッククラステンプレートを使用して関数型への答えは:私はここで行われていたものを研究したよう template <typename T> struct function_args {}; template <typename R, typename... Args> struct function_args<R(Args...)> {

    0

    3答えて

    ルビー2.2 に module A def self.a "a" end end を考えるとどのように私はので、私は変数に割り当てることができますし、後でそれを呼び出すA.aにアクセスできますか? x = A::a.to_sym send x # NoMethodError: undefined method `a' for main:Object 次