아래 코드는 std :: string ASCII 코드로 표현하는 데 사용됩니다.메소드 템플릿 만들기 - C++
string Helpers::GetStringFromASCII(const int asciiCode) const
{
return string(1,char(asciiCode));
}
잘 작동합니다. 하지만 제 응용 프로그램에서는 컴파일 타임에 ASCII 코드를 알고 있습니다. 그래서
string str = GetStringFromASCII(175) // I know 175 at compile time
질문
처럼 호출됩니다 처리가 컴파일시에 발생하는 것을 나는 각 시간에 함수를 호출 피할 수 있도록 GetStringFromASCII에게 방법 템플릿을 만들 수있는 방법이 있습니까 실행 시간.
의견이 있으십니까?
#include <iostream>
#include <string>
using namespace std;
template <int asciiCode>
inline string const &getStringFromASCII()
{
static string s(1,char(asciiCode));
return s;
}
int main(int, char const**) {
cout << getStringFromASCII<65>() << endl;
}
편집 : 이런 일에 대해 어떻게
무엇을 원하십니까? 템플릿은 당신에게 0을 살 것입니다. 불행한 경우 실행 파일 크기를 늘리면 런타임 값을 전달할 수 없습니다. –
주의 : ASCII는 [0; 127]으로 제한되며, 175는 ASCII 문자가 아닙니다. –