好奇心から、さまざまなファイルが特定の記号を割り当てて、通常のc文字列リテラルを他のリテラルに変更する方法を考えていました。
例えば...
Objective-Cでは、NSStringリテラルは次のように記述できます。@"..."
C ++(私は思う)では、C++文字列リテラルは書かれていますS"..."
wcharライブラリでは、wchar_tリテラルはwrittelです。L"..."
MyClassリテラルのような文字列を作成する方法を教えてもらえますか?#"..."
ありがとう
好奇心から、さまざまなファイルが特定の記号を割り当てて、通常のc文字列リテラルを他のリテラルに変更する方法を考えていました。
例えば...
Objective-Cでは、NSStringリテラルは次のように記述できます。@"..."
C ++(私は思う)では、C++文字列リテラルは書かれていますS"..."
wcharライブラリでは、wchar_tリテラルはwrittelです。L"..."
MyClassリテラルのような文字列を作成する方法を教えてもらえますか?#"..."
ありがとう
このようなものしか使えません。
#include <iostream>
#include <string>
struct MyClass
{
public:
MyClass(const char* a, size_t sz):
s(a, sz)
{
}
std::string get() const { return s; }
private:
std::string s;
};
MyClass operator "" _M(const char* arr, size_t size) { return MyClass(arr, size); }
int main()
{
MyClass c = "hello"_M;
std::cout << c.get() << std::endl;
}
C ++ 11では、ユーザー定義のリテラルを使用できます。http://liveworkspace.org/code/cfff55e34d3b707e1bf0cb714e8e8f29
ただし、プレフィックスリテラルを定義する機能はありません。