アカウント名:
パスワード:
#define private public
#include "hoge/hoge.h"
これで秘匿関数呼びたいホーダイ。
ちなみに、少し前からVisual C++には#define private public対策が入っています。
#define private public#include <iostream>
これをコンパイルすると、このようにコンパイルエラーとなります。
T:\>cl /c hoge.cppMicrosoft(R) C/C++ Optimizing Compiler Version 19.00.23026 for x86Copyright (C) Microsoft Corporation. All rights reserved. hoge.cppC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xkeycheck.h(214): warning C4005: 'private': マクロが再定義されました。hoge.cpp(1): note: 'private' の以前の定義を確認してくださいC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xkeycheck.h(250): fatal error C1189: #error: The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.
まあ、ヘッダーでの対処なので、インクルードよりあとに#define private publicすると回避できるのですが。
最新の Visual C++ は確認できる環境が身近にないのですが、ちょっと古い Visual C++ 2010 Expressだと、マクロ_XKEYCHECK とか RC_INVOKED を定義すれば回避できますね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
#defineがあれば、何でも出来る (スコア:1)
#define private public
#include "hoge/hoge.h"
これで秘匿関数呼びたいホーダイ。
Re:#defineがあれば、何でも出来る (スコア:3, 参考になる)
ちなみに、少し前からVisual C++には#define private public対策が入っています。
これをコンパイルすると、このようにコンパイルエラーとなります。
まあ、ヘッダーでの対処なので、インクルードよりあとに#define private publicすると回避できるのですが。
Re: (スコア:0)
最新の Visual C++ は確認できる環境が身近にないのですが、ちょっと古い Visual C++ 2010 Expressだと、マクロ_XKEYCHECK とか RC_INVOKED を定義すれば回避できますね。