상대적인 작은 코드베이스를 컴파일 할 때 예외 처리/typeinfo에 대한 많은 "불필요한"내용이 나타납니다. 나는 allready = (빈) -stdlib 컴파일 않고 내가 예를 들어 (GC 물건 않고) 다음 stdlib에 대한 내 자신의 교체를해야합니까 (-map 컴파일) : 0002:000025D8 __except_handler3 004045D8
저는 D로 시작하는 C++ 프로그래머로서 D 클래스에 대한 액세스 한정자를 이해하는 데 어려움을 겪고 있습니다. 다음의 예를 생각해 import std.stdio;
class Foo {
private void aPrivateMethod()
{
writeln("called aPrivateMethod");
}
좋아, 이것이 스택 오버플로에 대한 나의 첫 번째 질문이다. 그래서 내가 제대로 묻지 않는다면 그것으로 끝내라. 기본적으로 std.socket을 사용하여 일부 비동기 소켓을 코딩하려고하지만 개념이 올바른지 잘 모르는지 확실하지 않습니다. C#에서 비동기 소켓을 사용하여 작업 한 적이 있지만 D에서는 훨씬 낮은 수준 인 것처럼 보입니다. 나는 많은 것을 연구
첫 번째 질문 : D 배열 함수 매개 변수는 항상 참조 또는 값으로 전달됩니까? 또한 언어는 배열에 대한 쓰기 복사를 구현합니까? 예 : void foo(int[] arr)
{
// is arr a local copy or a ref to an external array?
arr[0] = 42; // How about now?
}
with 블록은 D 언어로 제공됩니까? 나는 다음과 같은 동작을 찾고 있어요 : 그것은 사용할 수없는 경우 struct Address {
string street;
int number;
}
struct Person {
Address address;
}
// in some function
Person p = ...
w
형식 정보를 스레드로 전달하면 전달 된 정보를 사용하여 올바른 형식의 개체를 스레드에 만들 수 있습니까? 다음과 같은 것 : struct Test // or class Test
{
int x, y, z;
}
void testInThread(F, T ...)(T args)
{
auto obj = F(args);
// Do
스택에있는 구조체의 가비지 수집 복사본을 만들려면 어떻게해야합니까? C++ 배경에서 나온 첫 번째 추측은 아래의 것과 같은 복사 생성자가 될 것이지만 D에 대해서는 매우 관용적 인 것처럼 보이지 않으며 내가 본 D 프로젝트 중 하나를 보지 못했습니다. 보세요. struct Foo {
immutable int bar;
this(int b)
아주 최근에 이상한 const이 배치면에서 (기능 이름의 오른쪽 또는 왼쪽 등) D에서 어떻게 논의되었는지 설명했습니다. 이제는 ref const X이 함수 매개 변수에 const ref X과 동일하면 궁금합니다. 두 버전 모두 내 테스트 프로젝트에서 컴파일하지만 당신은 괄호를 사용해야 할 경우 나는 확인을
align 속성에 few different 형태의 사용이 있다는 것을 알고 있습니다. 다음과 같이 내 첫 번째 시도에서 , 나는 그것을 사용했다 : 구조체 결과 align(1)
private struct TGAHeader
{
ubyte idLenght;
ubyte hasColormap;
ubyte imageType;