मैं तलाश रहा है कितनी दूर मैं constexpr चार स्थिरांक ले सकता है * इस जवाब से संयोजन: constexpr to concatenate two or more char stringsconstexpr सी स्ट्रिंग संयोजन, एक constexpr संदर्भ में प्रयोग किया मापदंडों
मैं निम्नलिखित उपयोगकर्ता कोड से पता चलता है कि मैं वास्तव में क्या 'है मैं करने की कोशिश कर रहा हूँ। ऐसा लगता है कि संकलक यह नहीं देख सकता कि फ़ंक्शन पैरामीटर (ए और बी) को कॉन्सएक्सप्र के रूप में पास किया जा रहा है।
क्या कोई भी उन दोनों को बनाने का तरीका देख सकता है जो मैं इंगित करता हूं कि नीचे काम नहीं करते हैं, वास्तव में काम करते हैं? इस तरह के कार्यों के माध्यम से चरित्र सरणी को गठबंधन करने में सक्षम होना बेहद सुविधाजनक होगा।
template<typename A, typename B>
constexpr auto
test1(A a, B b)
{
return concat(a, b);
}
constexpr auto
test2(char const* a, char const* b)
{
return concat(a, b);
}
int main()
{
{
// works
auto constexpr text = concat("hi", " ", "there!");
std::cout << text.data();
}
{
// doesn't work
auto constexpr text = test1("uh", " oh");
std::cout << text.data();
}
{
// doesn't work
auto constexpr text = test2("uh", " oh");
std::cout << text.data();
}
}