問題タブ [preprocessor-directive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
110 参照

c++ - C ++は、ディレクティブでラップせずに連鎖呼び出しを無効にします

私は自分のプロジェクト用の単純なロガーラッパーに取り組んでいます。これにより、バックエンドを簡単に交換できます。
これが私の理想的なインターフェースです。

私がそれを実装した方法は次のとおりです。

  1. log::error#operator<<Sink一時オブジェクトを返します。

  2. Sink#operator<<移動コンストラクターを返し*this、定義します。

  3. Sink完全なメッセージは、呼び出しチェーンの最後に呼び出されるのデストラクタで 利用できます。

考案された実装:

これは、ロギングを無効にするクリーンな方法が必要な場合を除いて、正常に機能します。チェーンを使用していなかった場合、ログ関数はプリプロセッサディレクティブを使用して関数のコンテンツを削除できます

次に、コンパイラーは空の関数呼び出しを最適化して削除します。しかし、私が達成しようとしているAPIでそれをどのように行うかはわかりません。glogがどういうわけかそれをするので、私はそれが可能であることを知っています。

このようなディレクティブを使用すると、優れたAPIを使用するという目的が無効になります。

これらのタイプの連鎖呼び出しを無効にするクリーンな方法は何ですか?どんな助けでも大歓迎です。

0 投票する
2 に答える
75 参照

objective-c - プリプロセッサ ディレクティブの問題

iOS アプリに Google+ API と Foursquare API を含めようとしています。#define DEBUGコンパイル時に、両方がコンパイル中に競合するステートメントを使用しているため、字句またはプリプロセッサの問題が発生したことが示されます。

0 投票する
5 に答える
217 参照

c++ - CとC++の間の共通ヘッダーのプリプロセッサガードについて

CおよびC++のプリプロセッサディレクティブについて質問があります。

私は次のコードを持っています:

私は、c++コンパイラーが事前定義された__cpluspluswillcコンパイラーがそうではないことを知っています。

そして、このコードセットをacヘッダーファイルに入れます。c++ファイルにはこのcヘッダーファイルが含まれます。そして私の質問は、ファイルがc ++コンパイラでコンパイルされている場合は、パートAをコンパイルし、acコンパイラでコンパイルされている場合は、パートBをコンパイルしますが、通常、このコードを使用してc++ファイルを作成します。 cファイルは相互に作用します。上記のようなコードがある場合、CファイルとC ++ファイルの両方が一緒にあり、gccコンパイラを使用しているということですが、このコードはどのようにコンパイルされますか?パートAだけがコンパイルされますか?またはパートBのみがコンパイルされますか?または、コードが2つの部分に分割され、パートAがC ++用にコンパイルされ、パートBがCファイル用に同時にコンパイルされますか?

0 投票する
2 に答える
455 参照

c++ - プリプロセッサ関数で他の #define を作成できますか?

これを尋ねた後、私は罰せられることを知っていますが、それでも私は次のようなことをしたいと思います:

つまり、他の「#defines」を動的に定義する「#define」関数が必要です。

リファクタリングできない IDE を持っています。さらに、コンストラクター、特にコピー コンストラクターを特別な役割のために目立たせたいと考えています。
したがって、C++ クラス定義を次のようにプログラムすることを目指しています。

そのために、現在、3 つの #define 行をコピーして貼り付ける必要があります。私はむしろそれらを自動的に行いたいです。プリプロセッサを使用してこれを実現する方法はありますか?

0 投票する
9 に答える
8122 参照

c - acファイルの関数名を見つけるCプログラム

C (Linux OS) でプログラミングしています。ファイルを読み取り、そのファイル内の関数をチェックして、対応する関数名を出力する必要があります。これまでのところ、「{」の深度計算を使用して関数を識別するようにプログラムしました。__FUNCTION__現在のファイルの関数名を出力するためにプリプロセッサ ディレクティブが使用されていることは知っています。同様に、読み取ったファイルの関数名を見つけるためのプリプロセッサ ディレクティブはありますか? 特定のツールについては心配していません。プログラムしてもらいたい。よろしくお願いします。前もって感謝します。

このコードを実装しようとしました。この関数は、行 ('{' の前に来る) を引数として取ります。

このコードが正しいかどうかわかりません。このまま使おうかな。関数名を見つけるオプションはありますか?

0 投票する
0 に答える
135 参照

c# - VS2010 パブリッシング プリプロセッサ ディレクティブ

ClickOnce を使用して発行するときにプロジェクトをビルドするときに使用できるプリプロセッサ ディレクティブはありますか? そうでない場合、この機能を提供できるビルド スクリプトまたはマクロはありますか?

例:#if PUBLISHING ... #endif

0 投票する
4 に答える
26010 参照

c# - #ifDEBUG以外のディレクティブのプリプロセッサディレクティブ

これを行うことで、プリプロセッサディレクティブを使用してデバッグ/リリースをチェックできることを知っています。

しかし、テストなどの他の構成をチェックするのはどうでしょうか。VBでは、これを行うことができます。

だから、私の質問はC#ですが、どうすればテストモードを確認できますか?デバッグとテストを行っているがリリースモードではない場合に実行したいコードがいくつかあるので、具体的には、リリースモードでないことを確認する方法が必要です。VBではこれを行います:

0 投票する
3 に答える
92 参照

c++ - C++は用語ごとにファイルを含める

VC++環境内にプログラムがあるとします。このプログラムは、別のオペレーティングシステムで特定のコードを使用するために、それ自体を変更する必要があります。

たとえば、プログラムが実行するコードを変更し、実行するコードを変更AするWindows XPWindows 7しますB。ファイルにあるアクションのコードとAファイルにあるアクションのコード。"a.h"B"b.h"

オペレーティングシステムを検出することを目的とした関数があるとしましょう。OSを検出してファイルの1つだけをロードしたい場合、機能のアクティブ化などの用語でファイルを含めるにはどうすればよいですか?

0 投票する
1 に答える
186 参照

c - ctypes からプリプロセッサ ディレクティブを渡すにはどうすればよいですか?

プリプロセッサ ディレクティブにラップされた C コードがいくつかあります。

ctypesを介してPythonから実行する必要do stuffがあります-定義できる方法はありますTESTか?

0 投票する
2 に答える
3884 参照

c++ - C++ のマクロとプリプロセッサ ディレクティブの違いは何ですか?

重複の可能性:
マクロとプリプロセッサの違い

C++ のマクロ ディレクティブとプリプロセッサ ディレクティブについて質問があります。それらの違いは何ですか? それらは多かれ少なかれ同じように見えますか?ネットで調べてみたのですが、よくわかりません、どなたか教えていただけないでしょうか?