タイプパンされた逆参照
私は列挙型を持っています
enum AgentStatus { kSTOPPED = 0, kRUNNING, kIDLE, kNAGENTSTATUS };
多くのオーバーロードされたバリアントを持つ外部ライブラリの関数に渡す必要があります。2番目の引数に渡したい:
DimService::DimService(const char*, int&);
DimService::DimService(const char*, char*);
...
enum 変数を (int&) にキャストすると、悪名高い警告が表示されます。
warning: dereferencing type-punned pointer will break strict-aliasing rules
(int) にキャストすると、これが得られます
invalid conversion from ‘int’ to ‘char*’
error: initializing argument 2 of ‘DimService::DimService(const char*, char*)’
正しい方法は何ですか?