小编Hol*_*olt的帖子

无法解析IntelliJ Idea IDE中的符号javafx.application

我试图在IntelliJ Idea IDE中创建一个JavaFX应用程序,但我收到编译错误,说:

java:包javafx.application不存在.

我已将Project SDK和Project Language Level更改为Java 8,重新加载项目但它没有帮助.然后我检查了设置中是否启用了JavaFX插件.

在Google和StackOverflow上的搜索没有给我更多关于错误的想法.提前感谢您的帮助.

PS我在archlinux OS上使用IntelliJ Idea 14.0和java8.1.0_25.

java javafx intellij-idea

69
推荐指数
4
解决办法
10万
查看次数

从函数返回多维数组

如何返回存储在a中的多维数组 private我的类字段中?

class Myclass {
private:
   int myarray[5][5];
public:
   int **get_array();
};

// This does not work:
int **Myclass::get_array() {
    return myarray;
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

无法转换int (*)[5][5]int**回报

c++ multidimensional-array

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

在C++中多线程的join()和detach()有什么不同?

什么是之间的不同join(),并detach()在C++多线程?是否join()杀死线程?

c++ multithreading join detach c++11

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

如何在jquery中检测移动Web应用程序中的键盘显示/隐藏事件

我正在开发基于Web的移动(HTML)应用程序.有没有办法检测键盘事件,如键盘可见和键盘隐藏,基于我可以控制其他屏幕布局.

我已经尝试了焦点,模糊,浏览器调整大小事件,但我的问题没有解决100%,所以我只寻找键盘事件,实际上我想在键盘可见时隐藏页脚,因为它(页脚)出现在键盘上,所以我试图在键盘可见时设置相对的页脚位置,并在键盘隐藏时将页脚位置固定.

我尝试过如下工作,但这不能解决我的问题.

$(document).ready(function () {

  $("input").focus(function() {
    $(".copyright_link").css("position","relative");    
  });      

  $("input").blur(function() {
    $(".copyright_link").css("position","fixed");   
  });      

});
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决页脚问题,或者让我知道jquery中是否有键盘事件.

jquery

19
推荐指数
3
解决办法
4万
查看次数

如果第二个属性未进行括号初始化,则使用支撑初始化程序编译缩小转换

从c ++ 11开始,列表初始化(包括聚合初始化)不允许缩小转换.所以基本上:

char c{1000}; // Does not compile with g++, clang, vc
Run Code Online (Sandbox Code Playgroud)

但:

std::pair<char, double> p{1000, 1.0};
Run Code Online (Sandbox Code Playgroud)

编译所有编译器?

但:

std::pair<char, double> p{1000, {1.0}};
Run Code Online (Sandbox Code Playgroud)

不用VC编译(错误C2398),用clang发出警告并用g ++静默编译...

我本来期望VC行为无处不在,即一个非允许的缩小转换会引发错误.哪个是编译器是对的?


另一方面,以下代码段中的变量声明都没有编译:

struct X {
    char c;
    double d;
};

X x1{999, 1.0};
X x2{999, {1.0}};

struct Y {
    char c;
    double d;
    Y (char c, double d) : c(c), d(d) { }
};

Y y1{999, 1.0};
Y y2{999, {1.0}};
Run Code Online (Sandbox Code Playgroud)

所以我的一个猜测可能是有一些特别的东西std::pair?还有什么东西可以缩小支撑初始化?

c++ c++11

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

使用三元运算符进行奇怪的隐式转换

我有以下代码:

class A {
public:
    operator int() const { return 5; }
};

class B {
public:
    operator int() const { return 6; }
};

int main() {
    A a;
    B b;
    int myInt = true ? a : b;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

尝试使用Visual Studio 2017 RC编译该代码会导致以下错误:

错误C2446 :: :没有转换BA

注意:没有可用于执行此转换的用户定义转换运算符,或者无法调用运算符

...这是令人惊讶的,因为在这种情况下,我希望它将它们转换为通用类型int.

clang (4.0)成功编译相同的代码,没有任何错误或警告.

在这种情况下,哪两个是正确的,为什么?

c++ type-conversion ternary implicit-conversion operator-keyword

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

使用std :: function时,选择自动返回类型的调用操作符而不是构造函数

以下片段:

#include <functional>

struct X {
    X(std::function<double(double)> fn); // (1)
    X(double, double);                   // (2)

    template <class T>
    auto operator()(T const& t) const {  // (3)
        return t.foo();
    }
};

int main() {
    double a, b;
    auto x = X(a, b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

... 当使用- 在OSX和godbolt.org上测试时,无法使用clang(4.0.1)和g++(6.3,7.2)-std=c++14进行编译.

但如果符合以下情况,它编译没有问

  • 我删除构造函数(1);
  • 或者我将返回类型设置为具体类型(例如double)(3);
  • 或者如果我使用尾随返回类型(-> decltype(t.foo()))(3);
  • 使用编译-std=c++1z(感谢@bolov).

也许有一些明显我在这里失踪的东西......这段代码有什么问题吗?这是一个错误吗?

c++ function-object std-function return-type-deduction c++14

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

为什么std :: array :: size constexpr具有简单类型(int,double,...)但不是std :: vector(GCC)?

以下代码:

std::array<int, 4> arr1;
std::array<float, arr1.size()> arr2;
Run Code Online (Sandbox Code Playgroud)

...编译两者gccclang因为std::array::size被考虑constexpr.

但是以下gcc版本没有编译(版本5.3.0 20151204):

std::array<std::vector<int>, 4> arr1;
std::array<std::vector<double>, arr1.size()> arr2;
Run Code Online (Sandbox Code Playgroud)

对我来说,没有理由这样的代码如果第一个有效则无法编译,但由于我没有找到很多帖子,我不知道它是一个gccbug还是一个clang扩展?

错误来自gcc(我真的不明白......):

main.cpp: In function 'int main()':
main.cpp:6:46: error: call to non-constexpr function 'constexpr std::array<_Tp, _Nm>::size_type std::array<_Tp, _Nm>::size() const [with _Tp = std::vector<int>; long unsigned int _Nm = 4ul; std::array<_Tp, _Nm>::size_type = long unsigned int]'
     std::array<std::vector<double>, arr1.size()> arr2;
                                              ^
In file included from main.cpp:1:0:
/usr/local/include/c++/5.3.0/array:170:7: note: 'constexpr std::array<_Tp, …
Run Code Online (Sandbox Code Playgroud)

c++ arrays constexpr c++11

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

单个函数(bsearch/qsort)的外部C和C++的目的是什么?

浏览标准草案(N4527)时,我发现了以下段落([alg.c.library]):

功能签名:

bsearch(const void *, const void *, size_t, size_t,
    int (*)(const void *, const void *));
Run Code Online (Sandbox Code Playgroud)

被两个声明取代:

extern "C" void* bsearch(const void* key, const void* base,
                         size_t nmemb, size_t size,
                         int (*compar)(const void*, const void*));
extern "C++" void* bsearch(const void* key, const void* base,
                           size_t nmemb, size_t size,
                           int (*compar)(const void*, const void*));
Run Code Online (Sandbox Code Playgroud)

同样的东西qsort.

我也在[dcl.link]中找到了:

如果两个声明声明具有相同名称的函数,并且参数类型列表(8.3.5)是同一命名空间的成员,或者声明具有相同名称的对象是同一命名空间的成员,并且声明为这些名称提供不同的语言链接,该计划是不正常的;

这两个extern声明相同功能的目的是什么?为什么这个区块没有形成错误?

c++

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

如何编写适用于任何类型的集合对象的size()函数?

我需要一个简单的方法来获取类的对象的数量/长度/大小T这里T是某种集合类型,如中std::map,std::list,std::vector,CStringArray,CString,std::string,...

对于大多数标准类型,T::size()是正确答案,因为大多数MFC类T::GetSize()是正确的,因为CString它是T::GetLength().

我希望有一个像:

template <typename T> auto size(const T & t)
Run Code Online (Sandbox Code Playgroud)

...评估正确的成员函数调用.

看起来应该有一种简单的方法来调用一个traits模板,在T该模板上有一个size(const T & t)成员,它本身使用SFINAE存在或不存在,如果它存在,那么根据定义调用一个适当的方法t.size_function()来返回元素的数量.那个例子T.

我可以编写一个精心设计的has_member类型 - 特征模板 - 在stackoverflow上有一些例子 - 所有这些都让我觉得很复杂"必须有一个更简单的方法".使用C++ 17,似乎应该轻松优雅地解决这个问题?

这里这里的这些讨论似乎使用了一个不优雅的解决方案,其中一些答案使用预处理器宏来完成工作.这还有必要吗?

但是......当然,必须有一种方法可以使用这样一个事实,即在a上调用正确的成员函数T是可编译的,并且调用错误的函数无法编译 - 不能直接用于创建正确的类型特征包装器给定的类型T


我想要的是:

template <typename T>
auto size(const T & collection) …
Run Code Online (Sandbox Code Playgroud)

c++ mfc templates c++17

15
推荐指数
2
解决办法
1254
查看次数