小编Gha*_*nPL的帖子

浏览器之间的HTML差异

您知道在不同浏览器中处理HTML标签/属性有什么不同吗?例如,我曾经看过一个带有输入标签的页面,其maxlength字段设置为"2o".Firefox和Opera忽略"o",并将最大长度设置为2,而Internet Explorer完全忽略该字段.你知道了吗?

(注意:看到这可能是一个列表,如果差异的一般名称是粗体文本,那将是很好的,例如:标记属性中不同的不规则值处理)

html browser

4
推荐指数
2
解决办法
6039
查看次数

琐碎的数学问题作为语言基准

为什么人们坚持使用琐碎的数学问题,比如在Fibonacci序列中找到语言基准的数字?这些通常不会优化到相对论速度吗?通常在I/O,系统API调用,对字符串和结构的操作,处理大量数据,抽象面向对象的东西等方面,瓶颈不是首要任务吗?

benchmarking programming-languages

4
推荐指数
1
解决办法
568
查看次数

在C++中实现子类中的静态方法重载

我有这样的事情:

class Base
{
  public:
    static int Lolz()
    {
      return 0;
    }
};

class Child : public Base
{
  public:
    int nothing;
};

template <typename T>
int Produce()
{
  return T::Lolz();
}
Run Code Online (Sandbox Code Playgroud)

和

Produce<Base>();
Produce<Child>();
Run Code Online (Sandbox Code Playgroud)

两者都返回0,这当然是正确的,但不需要.反正是否在第二个类中强制执行Lolz()方法的显式声明,或者在使用时可能会抛出编译时错误Produce<Child>()?

或者是不好的OO设计,我应该做一些完全不同的事情?

编辑:

我基本上想要做的是做出类似这样的工作:

Manager manager;

manager.RegisterProducer(&Woot::Produce, "Woot");
manager.RegisterProducer(&Goop::Produce, "Goop");

Object obj = manager.Produce("Woot");
Run Code Online (Sandbox Code Playgroud)

或者更一般地说,外部抽象工厂不知道它正在生成的对象的类型,因此可以添加新类型而无需编写更多代码.

c++ oop static templates class

4
推荐指数
1
解决办法
7168
查看次数

模板化"查找和擦除"功能出错

template <typename CONTAINER_TYPE, typename CONTAINER_VALUE_TYPE>
bool FindAndErase(CONTAINER_TYPE& cont, const CONTAINER_VALUE_TYPE& value)
{
    CONTAINER_TYPE::iterator it = eastl::find(cont.begin(), cont.end(), value);
    if (it != cont.end())
    {
        cont.erase(it);
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

此代码在Visual C++ 2005上编译良好,但使用ARM编译器("ARM C/C++编译器,RVCT4.0")和iOS gcc("arm-apple-darwin9-gcc(GCC)4.2.1")进行编译返回错误:

错误:#65:预期";" 错误:#20:标识符"it"未定义

分别在第4和第5行.

这段代码有什么问题?

c++ templates iterator stl

4
推荐指数
2
解决办法
105
查看次数

Visual Studio中嵌套模板函数的typeid不一致

在使用Visual Studio 2013社区编译2013年11月的CTP时,我偶然发现了我的程序中的奇怪行为.下面的程序编译并打印"true",而预期的行为是它打印"false",这就是GCC和clang所做的.

我已在我的设置以及以下网站上测试了此代码:http://webcompiler.cloudapp.net/(声称VS编译器版本19,也打印"true"),http://codepad.org/,http://www.tutorialspoint.com/compile_cpp_online.php和其他一些人.

我不确定这里的正确行为是什么,或者下面的代码是否真的是正确的C++代码,所以我很难过.如果有人能够对这里发生的事情有所了解,那就太棒了.

#include <stdio.h>
#include <typeinfo>

template <typename T>
struct foo
{
    template <typename U>
    static void bar() {}
};

template <typename T>
void baz() {
    puts(typeid(&foo<T>::template bar<int>) == typeid(int) ? "true" : "false");
}

int main() {
    baz<double>();
}
Run Code Online (Sandbox Code Playgroud)

编辑:

感谢Reddit,我设法将这个bug引起了STL的注意,STL已经报告了它并将在VS 2015 RTM中修复:http://www.reddit.com/r/cpp/comments/2zs2ob/ vc_2015_rtm_what_do_you_want_it_to_have/cpm01wr

c++ templates visual-studio visual-c++

4
推荐指数
1
解决办法
577
查看次数

在没有javascript的情况下滚动带有溢出的div

我有一个静态高度的div,内容被剪裁使用overflow: auto.在常规桌面浏览器上,我使用javascript滚动到内容的底部.但是,我需要在移动浏览器或没有javascript的浏览器上执行相同的操作.不是实时的,而是以这样的方式输出html + css,以便浏览器呈现内容的底部.

我可以使用的工具:HTML,CSS,PHP.

这可能吗?

html css php

3
推荐指数
1
解决办法
3443
查看次数

globalCompositeOperation

我曾尝试使用globalCompositeOperation在一个循环传递不同的字符串(source-atop,source-over等)在相同的2D背景,但我注意到,火狐让我画只有很少的形状,而歌剧院只有最后.

现在,我的问题是,我是否可以globalCompositeOperation在当前情境中仅使用一个?

javascript html5 canvas

3
推荐指数
1
解决办法
3872
查看次数

将lua中的数字与等式运算符进行比较有多安全?

在我的引擎中,我有一个用于编写脚本的Lua VM.在脚本中,我写的内容如下:

stage = stage + 1
if (stage == 5) then ... end
Run Code Online (Sandbox Code Playgroud)

和

objnum = tonumber("5")
if (stage == objnum)
Run Code Online (Sandbox Code Playgroud)

根据Lua的消息来源,Lua在比较它使用的内部数字类型的双精度时使用了一个简单的相等运算符.

我知道处理浮点值时的精度问题,所以我想知道比较是否安全,也就是说,使用Lua的默认'=='操作简单地比较这些数字会有什么问题吗?如果是这样,是否有任何对策我可以确保1 + 2总是比较等于3?将值转换为字符串是否有效?

double lua numbers equality

3
推荐指数
2
解决办法
7660
查看次数

SQL"LIKE"复杂性

有谁知道LIKE最流行的数据库的SQL 运算符的复杂性是什么?

sql database complexity-theory sql-like

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

关于char数组的模板特化的"未解析的外部符号"

我的代码中有类似的东西:

template <typename T>
struct A
{
  void Print();
};

template <>
struct A<char*>
{
  void Print() { printf("Char*!\n"); }
};

template <typename T>
void DoSomething(T& lol)
{
  A<T> a;
  a.Print();
}

int main()
{
  char a[5];
  DoSomething(a);
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下链接器错误:

error LNK2019: unresolved external symbol "public: void __thiscall A<char [5]>::Print(void)" (?Print@?$A@$$BY04D@@QAEXXZ) referenced in function "void __cdecl DoSomething<char [5]>(char const (&)[5])" (??$DoSomething@$$BY04D@@YAXAAY04$$CBD@Z)
Run Code Online (Sandbox Code Playgroud)

我应该为A模板专门设置什么类型,以便我可以将它与char-array一起使用?我尝试过const char*const,char,*和&的其他组合,没有任何效果.

请注意,我无法更改DoSomething功能.

此外,如果可能,我希望编译器自动推导(或转换)模板类型,而不在DoSomething<smth>()调用中指定它main().

c++ arrays templates template-specialization

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