小编Bil*_*eal的帖子

我需要有人向我解释这些代码行

我需要有人一行一行地向我解释这段代码.我特意不理解这一行:

operator std::map<T, U>()
Run Code Online (Sandbox Code Playgroud)

非常感谢你.

template <typename T, typename U>
class create_map 
{ 
    std::map<T, U> m_map;
public:
    create_map(const T& key, const U& val) 
    {  
        m_map[key] = val;
    }
    create_map<T, U>& operator()(const T& key, const U& val) 
    {
        m_map[key] = val;
        return *this;
    }
    operator std::map<T, U>()     
    {
        return m_map;     
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ stl

0
推荐指数
1
解决办法
177
查看次数

我可以使用带有隐式转换运算符的enable_if之类的东西吗?

我有一个(基本完成的)矩阵类(本文稍后).如果矩阵是1x1矩阵,那么我想隐式转换为支持类型(例如,1x1浮点矩阵应转换为浮点数).

有没有办法在不创建专业化并复制Matrix内的所有方法的情况下做到这一点?(例如使用类似的东西std::enable_if?)当且仅当ROWS == COLS == 1时,我基本上想要启用隐式转换.

template <std::size_t ROWS, std::size_t COLS = 1, typename BackingType = float>
class Matrix
{
    BackingType data[ROWS][COLS];
public:
    Matrix()
    {
        for(std::size_t rdx = 0; rdx < ROWS; ++rdx)
        {
            for (std::size_t cdx = 0; cdx < COLS; ++cdx)
            {
                data[rdx][cdx] = 0;
            }
        }
    }
    const BackingType& Member(std::size_t index) const
    {
        assert(index < ROWS*COLS);
        return *(static_cast<BackingType*>(&data[0][0]) + index);
    }
    BackingType& Member(std::size_t index)
    {
        assert(index < ROWS*COLS);
        return *(static_cast<BackingType*>(&data[0][0]) + index);
    }
    const BackingType& …
Run Code Online (Sandbox Code Playgroud)

c++ templates enable-if c++11

0
推荐指数
2
解决办法
996
查看次数

C++获取unordered_set*的字节表示,不带*序列化

在分布式计算设置中,我想向许多节点发送unordered_set.我知道C++中的序列化,例如使用boost::serialization.我对序列化的看法是,unordered_set在接收到序列化数据后,我面临着在每个节点上重建数据结构的成本.

我的想法是为unordered_set编写一个自定义分配器,它分配一个固定大小的连续内存,并在分配后返回起始内存地址.然后我想获取它的字节表示,unordered_set通过线路发送它,并告诉接收节点这个内存块是一个unordered_set.

那会有用吗?你们有没有其他想法如何解决我的问题?或者你有任何相关的指针,例如写这样的分配器?任何反馈都表示赞赏.

谢谢!

c++ serialization distributed-computing unordered-set

0
推荐指数
1
解决办法
131
查看次数

如何强制客户端调用显式专用模板而不是主模板?

这是我想做的伪代码.

template<typename T>
struct ConvertToT
{
    static_assert(false, "Explicit specialization for T required.");

    // Variant will be coerced to this type before calling Convert.
    std::uint32_t GetVariantType()
    {
        return VT_EMPTY;
    }
    T Convert(CComVariant& input)
    {
        return "ERROR!";
    }
};

template<>
struct ConvertToT<std::wstring>
{
    std::uint32_t GetVariantType()
    {
        return VT_BSTR;
    }
    T Convert(CComVariant& input)
    {
        return std::wstring(input.bstrVal, ::SysStringLen(input.bstrVal));
    }
};

/* repeat for several more explicit specializations:
 * template<>
 * struct ConvertToT<...>
 * {
 *     std::uint32_t GetVariantType()
 *     {
 *         return ...;
 *     } …
Run Code Online (Sandbox Code Playgroud)

c++ com templates

0
推荐指数
1
解决办法
148
查看次数

为什么我插入的行中的值与插入查询中的值不匹配?

我只是无法理解为什么我的数据库(mysql)表现得像这样!我的控制台显示记录已正确创建(请注意"remote_id"值):

推文创建(0.3ms)

INSERT INTO `tweets` (`remote_id`, `text`, `user_id`, `twitter_account_id`)
              VALUES (12325438258, 'jamaica', 1, 1)
Run Code Online (Sandbox Code Playgroud)

但是当我检查记录时,它显示remote_id是2147483647 intead的提供值(上例中的12325438258)...

这个表有很多条目,但是这个字段总是用2147483647写的...它应该用一个唯一的id填充这个空间(我保证你正确生成).

mysql ruby-on-rails

-1
推荐指数
1
解决办法
75
查看次数

PHP%运算符,应该返回什么结果?

$ djs_all_num = mysql_num_rows($ djs_all_db); while($ djs_all = mysql_fetch_array($ djs_all_db)){if($ djs_all_num%"2"){

使用我的if()语句,这应该会减少行数,因此在其他内容上应该显示其余的行.

它是否正确?

php modulus

-1
推荐指数
1
解决办法
169
查看次数

当一个是size_t类型而另一个是<0时,为什么mod操作返回0?

有c ++代码:

string s = "abc";
size_t len = s.length();
cout<<(-1%len)<<endl;//print 0
Run Code Online (Sandbox Code Playgroud)

但如果将size_t更改为int:

string s = "abc";
int len = s.length();
cout<<(-1%len)<<endl;//print -1
Run Code Online (Sandbox Code Playgroud)

为什么会这样,有人可以解释一下,谢谢!

c++

-1
推荐指数
1
解决办法
394
查看次数

C++ CopyFile()不适用于c:\

大家好我有一个复制自己的简单程序.当我在D盘中复制时,它的工作很棒.但是当我试图在c盘上复制它时没有任何反应.

这是代码:

int main()
{
        string appDir = "";
        appDir = std::string( result, GetModuleFileName( NULL, result, MAX_PATH ) );
    CopyFile(appDir.c_str(), "C:\\SelfCopyingApp.exe", 1);

    system("PAUSE");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有没有人有想法?谢谢...

c++ winapi

-2
推荐指数
1
解决办法
1280
查看次数