小编Equ*_*als的帖子

使用"constexpr"将字符串文字用于模板参数

我已经写了一些代码投const char*int使用constexpr,因此我可以使用const char*作为一个模板参数.这是代码:

#include <iostream>

class conststr
{
    public:
        template<std::size_t N>
        constexpr conststr(const char(&STR)[N])
        :string(STR), size(N-1)
        {}

        constexpr conststr(const char* STR, std::size_t N)
        :string(STR), size(N)
        {}

        constexpr char operator[](std::size_t n)
        {
            return n < size ? string[n] : 0;
        }

        constexpr std::size_t get_size()
        {
            return size;
        }

        constexpr const char* get_string()
        {
            return string;
        }

        //This method is related with Fowler–Noll–Vo hash function
        constexpr unsigned hash(int n=0, unsigned h=2166136261)
        {
            return n …
Run Code Online (Sandbox Code Playgroud)

c++ templates string-literals constexpr c++11

27
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

c++11 ×1

constexpr ×1

string-literals ×1

templates ×1