表題を探しています
ネット検索しているのですが冪乗や高度な数学関数呼び出しに対応するコードは散見するのですが、C言語のルールに則った型変換(明示/暗黙)に関するものが見つからず困っています
有用な情報があれば誘導をお願いします
文字列の中で関数呼び出しやポインタ、配列参照などは特に必要なく、C言語風のシンプルな定数の記述(0xで16進数、.fでfloat、暗黙型変換)などがいくつか可能であればいいなといった具合です
具体的にやりたいことは以下になります
//組み込もうとしている機能のテンプレートはこの様な感じ template<class TYPE> TYPE enzan(const char* str) { TYPE v=(TYPE)0; //... strをパースしてvを求める return v; } int main() { //↓この様に右辺に複雑な演算とキャストを含める const int const_value = (int)(5.0 + ((unsigned long)0xf * 3.2f + 7%3 + (1<<3))); //上記右辺をそのまま文字列として渡して同等の演算をしたい int value = enzan<int>("(int)(5.0 + ((unsigned long)0xf * 3.2f + 7%3 + (1<<3)))"); return 0; }
以上です。
よろしくお願いいたします。
まずはシンプルに、1つの整数の文字列をコンパイル時に整数にパーズする方法はわかりますか?
(これは、可能です)
atoiの中身をバラしてinline化すればできそうですけど
すみません質問の意図がわからないです
constexprを使えばコンパイル時定数の自由度があがりまくる=>要求機能が大きすぎる
とかそういうことでしょうか?
なるほど少し質問文を検討してみます
> すみません質問の意図がわからないです
何がわかっていて何がわからないのか確認したいのです。
参考までに、私は回答として仕様を満たす完全なコードを書く気はまったくありません。かなりの規模のコードになりそうなので。
実装依頼ではないです
ああ、コードを書く気はなくて、ライブラリなどを探しているのですね。
私のコメントは的外れでした。失礼しました。
自分の思うぴったりのコードが見つかる確率は非常に少ないので、自分で書くものです。
ここは検索依頼をするところでもありません。
少し違ってもいいならだれかが作っているでしょうから「C eval」で検索してみてください。
有益なキーワード助かります
ぴったりのコードを要求しているような文面を修正しておきます
回答1件
あなたの回答
tips
プレビュー