コンパイラーエラー: '(' トークンの前に一次式があることが予想されます。
2022-02-27 21:12:30
コンパイル時に、以下のようなエラー文が表示されます。LOG(INFO) << "ユーザーID:" << org.user_id ;
エラーの報告
error: '('トークンの前に一次式があることが予想されます。
error: numeric constant の前に unqualified-id があるはずです。
しかし、何度検索してもエラーが出ないので、マクロ定義のINFOが他のヘッダー関数のINFOと衝突して、このエラーが発生することがわかりました。
しかし、このヘッダー関数が必要なもので、魚と熊の前足の両方を手に入れるにはどうしたらいいのでしょう。参考までに、とても賢いラッピングのテクニックを紹介しよう。
LOG(INFO)のヘッダー関数は次の通りです:logging.h
競合するヘッダー関数は:dbclient.h(競合がどのようなものであるかは、今は無視します)
カスタムインターフェイスとしてmy_dbclient.h my_dbclient.cppを新規に作成し、以下のように実装します。
my_dbclient.h
<pre name="code" class="cpp">#include <iostream>
#include <vector>
#include <map>
//Note: dbclient.h is not included here, otherwise it would be wrapped in vain.
//define DBClientConnection, Query, avoid undefine errors
namespace mongo {
class DBClientConnection;
class Query;
namespace mongo { class DBClientConnection; class Query; }
class my_dbclient{
private:
mongo::DBClientConnection * m_newsdb_conn;
public:
my_dbclient();
~my_dbclient();
private:
bool QueryNewsDB( mongo::Query condition, std::vector<SimpleNewsInfo>&news_vec );
my_dbclient.cpp
<pre name="code" class="cpp">#include "my_dbclient.h"
#include "dbclient.h"// here then include dbclient.h so that other functions include "my_dbclient.h" will not include dbclient.h
using namespace std;
using namespace mongo;
my_dbclient::my_dbclient()
{ }
my_dbclient::~my_dbclient()
{ }
このように、dbclientライブラリの機能を利用しつつ、logging.hを呼び出すことが可能です。
関連
-
[解決済み】stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み】Cygwin - Makefile-error: ターゲット `main.o' のレシピに失敗しました。
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み] C言語におけるポインタとハンドル(この言葉は別々のものを伝えるために使われているのでしょうか?)
-
[解決済み] この関数の movzbl 呼び出しについて理解する手助けが必要です。
-
[解決済み] C 言語で const char* を char* に変換するには?
-
[解決済み] C言語プログラムでのSIGXCPUエラー
-
[解決済み] 修正方法 - コントロールが非ボイド関数の終わりに達する可能性があります。
-
[解決済み] C言語でのargv[]の長さの求め方
-
[解決済み] 1つの親プロセスから2つのプロセスを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 `S_ISREG()` とは何ですか、そして何をするのですか?
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?
-
[解決済み] C 言語で int64_t 型を表示する方法
-
[解決済み] strcpyとmemcpyの比較
-
[解決済み] C: `write error: フォーク、dup2、execvの後に`Bad file descriptor`が発生しました。
-
[解決済み] main.c という名前のソースファイルがない gdb のブレークポイント設定
-
[解決済み] C - 構造体の解放
-
[解決済み] 中括弧のないforループは何をするのですか?
-
[解決済み] Posixではdev_t型はどのように使用されていますか?
-
[解決済み] Printf がこのスコープで宣言されていない